Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm số lượng riêng lẻ 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 mảng đại diện cho một số từ và mảng kia là một số câu như thế này -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có hai mảng chuỗi như vậy.

Hàm phải chuẩn bị và trả về một đối tượng chứa các chuỗi của mảng (tên) đầu tiên được ánh xạ với số lượng của chúng trong mảng câu.

Do đó, đối với các mảng này, đầu ra sẽ giống như thế này -

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

Ví dụ

Mã cho điều 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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

{ jhon: 1, parker: 3 }