我一直在网上冲浪,试图找到一种有效的方法来做到这一点,但是却一无所获。我有一个看起来像这样的对象数组:
array[i].id = some number; array[i].name = some name; 我想做的就是找到id等于例如0、1、2、3或4之一的对象的索引。我想我可以做些类似的事情:
var indexes = []; for(i=0; i<array.length; i++) { (array[i].id === 0) ? { indexes[0] = i } (array[i].id === 1) ? { indexes[1] = i } (array[i].id === 2) ? { indexes[2] = i } (array[i].id === 3) ? { indexes[3] = i } (array[i].id === 4) ? { indexes[4] = i } } 尽管这可行,但它看起来非常昂贵且缓慢(更不用说难看了),尤其是在array.length可能很大的情况下。关于如何改善这一点的任何想法?我想过以某种方式使用array.indexOf,但是我看不到如何强制语法。这个
array.indexOf(this.id === 0); 例如,可能返回undefined。提前致谢! 问题来源于stack overflow
也许您想使用诸如“ map”之类的高阶函数。假设您要通过“字段”属性进行搜索:
var elementPos = array.map(function(x) {return x.id; }).indexOf(idYourAreLookingFor); var objectFound = array[elementPos];
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。