首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript:如何检查对象数组是否只有一个具有给定值的项?

Javascript:如何检查对象数组是否只有一个具有给定值的项?
EN

Stack Overflow用户
提问于 2017-07-12 08:31:42
回答 5查看 6.4K关注 0票数 6

我知道,在Javascript中,我可以在数组上使用.some.every来检查它们是否至少有一项或每一项通过了所提供的函数实现的测试。

以下是一些例子:

代码语言:javascript
运行
复制
[2, 5, 8, 1, 4].some(x => x > 10);  // false
[12, 5, 8, 1, 4].some(x => x > 10); // true

[12, 5, 8, 130, 44].every(x => x >= 10); // false
[12, 54, 18, 130, 44].every(x => x >= 10); // true

我正在检查数组是否有传递给定函数的“一个和唯一一个”项。我想有以下一些方法:

代码语言:javascript
运行
复制
[12, 5, 12, 13, 4].oneAndOnlyOne(x => x >= 10); // false
[2, 11, 6, 1, 4].oneAndOnlyOne(x => x >= 10); // true

您是否知道任何新的ECMA脚本6方式或任何简单/快速的方法,甚至使用lodash,来检查数组中是否有一个和一个唯一出现的具有特定值的项?

EN

Stack Overflow用户

发布于 2017-07-15 13:24:54

在找到第一个匹配点时将数组切片,然后在数组的其余部分进行搜索,如

代码语言:javascript
运行
复制
function oneAndOnlyOne(arr, fn) {
  const pos = arr.findIndex(fn);
  return pos >= 0 && !arr.slice(pos + 1).find(fn);
}

const tests = [[12, 5, 12, 13, 4], [2, 11, 6, 1, 4], [1, 2, 3]];
  
for (const test of tests) 
  console.log(String(test), oneAndOnlyOne(test, x => x >= 10));

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45052433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档