sma*_*use 3 javascript arrays ecmascript-6 lodash
我知道在Javascript中,我可以使用.some或.every在数组上检查它们是否至少有一项或每一项都通过了由提供的功能实现的测试。
这是一些例子:
[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
Run Code Online (Sandbox Code Playgroud)
我正在寻找检查数组是否具有通过给定功能的“一个且只有一个”项目。我想要一些如下方法:
[12, 5, 12, 13, 4].oneAndOnlyOne(x => x >= 10); // false
[2, 11, 6, 1, 4].oneAndOnlyOne(x => x >= 10); // true
Run Code Online (Sandbox Code Playgroud)
您是否知道任何新的ECMA Script 6方式或任何简便/快捷方式,甚至使用lodash,也可以检查数组中是否只有一个且只有一个值具有特定值?
您可以使用达到所需的结果Array#filter。
const oneAndOnlyOne = arr => arr.filter(v => v >= 10).length == 1;
console.log(oneAndOnlyOne([12, 5, 12, 13, 4]));
console.log(oneAndOnlyOne([2, 11, 6, 1, 4]));Run Code Online (Sandbox Code Playgroud)