首页 > 解决方案 > 在 JavaScript 数组中搜索与字符串模式匹配的所有项目的计数

问题描述

我需要在 JavaScript 数组中搜索与字符串匹配的所有项目的计数。例如,数组将包含以下元素:

我想要做的是在数组中搜索一个字符串,例如“ABC”,然后计算与该模式匹配的项目数。我正在使用 REST API 从 SharePoint 2013 列表中提取数据。到目前为止,这是我的相关代码:

var arrayPartySet = []; 

$.each(data.d.results, function (key, value) {

  var partySet = value.Party_x0020_Set;

  arrayPartySet.push(partySet); 
  //alert("arrayPartySet " + arrayPartySet);//For Testing

}); 

我在 Javascript 中尝试过的内容

.find- 只带回数组中第一个元素的值

.includes- 只告诉我数组是否包含元素

如果有人看到此问题并知道如何解决,请提供指导和示例。

标签: javascriptarrayssharepoint-2013

解决方案


使用, 并在回调中检查当前项目是否在您正在搜索的针reduce上迭代:.includes

const arr = [
  'ABC #1',
  'ABC #1',
  'ABC #1',
  'ABC #2',
  'ABC #3',
  'DEF #1',
  'DEF #2',
  'GHI #2',
];
const count = arr.reduce((a, str) => a + str.includes('ABC'), 0);
console.log(count);

如果你不喜欢.reduce,这相当于更长的代码:

const arr = [
  'ABC #1',
  'ABC #1',
  'ABC #1',
  'ABC #2',
  'ABC #3',
  'DEF #1',
  'DEF #2',
  'GHI #2',
];
let count = 0;
for (const str of arr) {
  if (str.includes('ABC')) {
    count++;
  }
}
console.log(count);


推荐阅读