Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm số lần xuất hiện chính xác của mảng chuỗi trong mảng câu trong JavaScript


Giả sử chúng ta có hai mảng chuỗi, một đại diện cho một số từ và cái kia một số câu như sau:

const names = ["jhon", "parker"]; 
const sentences = ["hello jhon", "hello parker and parker", "jhonny jhonny yes parker"];

Chúng ta cần viết một hàm JavaScript nhận vào hai mảng chuỗi như vậy. Hàm nên chuẩn bị và trả về một object chứa các chuỗi của mảng đầu tiên (names) được ánh xạ với số lần xuất hiện của chúng trong mảng câu.

Do đó, với các mảng này, đầu ra sẽ trông như:

const output = { "jhon": 1, "parker": 3 };

Ví dụ

Code cho việc này sẽ là:

const names = ["jhon", "parker"]; 
const sentences = ["hello jhon", "hello parker and parker", "jhonny jhonny yes parker"]; 
const countAppearances = (names = [], sentences = []) => { 
  const pattern = new RegExp(names.map(name => `\\b${name}\\b`).join('|'), 'gi'); 
  const res = {}; 
  for (const sentence of sentences) { 
    for (const match of (sentence.match(pattern) || [])) { 
      res[match] = (res[match] || 0) + 1; 
    } 
  } 
  return res; 
}; 
console.log(countAppearances(names, sentences));

Kết quả

Kết quả hiển thị trong console sẽ là:

{ jhon: 1, parker: 3 }