javascript - 在 JavaScript 数组中搜索与字符串模式匹配的所有项目的计数
问题描述
我需要在 JavaScript 数组中搜索与字符串匹配的所有项目的计数。例如,数组将包含以下元素:
- 美国广播公司 #1
- 美国广播公司 #1
- 美国广播公司 #1
- 美国广播公司 #2
- 美国广播公司 #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);
推荐阅读
- python - 素数计划:我想知道我成功计划的原因
- spring-boot - 如何自动将一类枚举转换为 VARCHAR
- vue.js - 如何在功能组件中使用插件的指令 - Vue 2
- portforwarding - 端口转发本地python服务器通过手机访问
- flutter - 如何计算动态小部件 totalPrice 变量值
- javascript - 无法获取 React(不是 CORS)- 来自 Fetch API 的 POST 请求在浏览器中被取消
- python-3.x - 用列表替换多个字符串
- javascript - 一段时间后取消 requestAnimationFrame 循环
- binary-tree - 二叉树必须有数字节点吗?二叉树可以有一个带有字符串值的节点吗?
- excel - 将 Excel + 许多表单输入导入 Laravel 中的同一个 mysql 表