在 JavaScript 数组中搜索与字符串模式匹配的所有项目的计数
Search JavaScript Array for Count of All Items that Match a String Pattern
我需要在 JavaScript 数组中搜索与字符串匹配的所有项目的计数。因此,例如,数组将包含这些元素:
- ABC #1
- ABC #1
- ABC #1
- ABC #2
- ABC #3
- 防御 #1
- 防御 #2
- GHI#2
我想做的是在数组中搜索 "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
- 只告诉我数组是否包含元素
如果有人看到这个问题并知道如何解决,请提供指导和示例。
使用 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);
使用filter
过滤哪些字符串包含ABC,然后求数组的长度。
var arr = [
'ABC #1',
'ABC #1',
'ABC #1',
'ABC #2',
'ABC #3',
'DEF #1',
'DEF #2',
'GHI #2',
];
var count = arr.filter(str => str.includes('ABC')).length;
console.log(count);
我们可以直接使用 REST 中的 $filter API 来获取项目。
/_api/web/lists/getbytitle('customlist')/items?$filter=substringof('ABC',Party_x0020_Set)
要搜索字符串数组,我们可以使用下面的代码来实现。
var count = arrayPartySet.filter(function(item){ return item.includes("ABC"); }).length;
我需要在 JavaScript 数组中搜索与字符串匹配的所有项目的计数。因此,例如,数组将包含这些元素:
- ABC #1
- ABC #1
- ABC #1
- ABC #2
- ABC #3
- 防御 #1
- 防御 #2
- GHI#2
我想做的是在数组中搜索 "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
- 只告诉我数组是否包含元素
如果有人看到这个问题并知道如何解决,请提供指导和示例。
使用 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);
使用filter
过滤哪些字符串包含ABC,然后求数组的长度。
var arr = [
'ABC #1',
'ABC #1',
'ABC #1',
'ABC #2',
'ABC #3',
'DEF #1',
'DEF #2',
'GHI #2',
];
var count = arr.filter(str => str.includes('ABC')).length;
console.log(count);
我们可以直接使用 REST 中的 $filter API 来获取项目。
/_api/web/lists/getbytitle('customlist')/items?$filter=substringof('ABC',Party_x0020_Set)
要搜索字符串数组,我们可以使用下面的代码来实现。
var count = arrayPartySet.filter(function(item){ return item.includes("ABC"); }).length;