我有一个数组数组:
[
[0,0],
[0,0],
[3,2],
[5,6],
[15,9],
[0,0],
[7,23],
]
我可以用类似的东西.indexOf(0)
如果我想找到第一个零值索引,但是如何找到第一个非零值的索引或符合某些条件的索引?
它可能看起来像.indexOf(function(val){ return val[0] > 0 || val[1] > 0;})
,但是不支持这个。
我如何以最优雅的方式解决这个问题?
我如何以最优雅的方式解决这个问题?
最好的解决方案是使用原生ES6数组方法.findIndex
(或 Lodash/下划线_.findIndex
).
var index = yourArr.findIndex(val=>val[0] > 0 || val[1] > 0)
此代码使用 ES6 箭头函数,相当于:
var index = yourArr.findIndex(function (val) {
return val[0] > 0 || val[1] > 0;
});
你当然可以使用.some
方法来检索索引,但这个解决方案并不优雅。
进一步参考有关.find
, .findIndex
和箭头函数:
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex
你可能需要垫片Array#findIndex
如果不存在,但这很容易完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)