对象数组中的indexOf方法?获得包含对象的数组的索引的最佳方法是什么?想象一下这个场景:var hello = {
hello: 'world',
foo: 'bar'};var qaz = {
hello: 'stevie',
foo: 'baz'}var myArray = [];myArray.push(hello,qaz);现在我想要indexOf对象hello财产'stevie'在这个例子中,1.我对JavaScript非常陌生,我不知道是否有一个简单的方法,或者我是否应该构建自己的函数来完成这个任务。
3 回答
莫回无
TA贡献1865条经验 获得超7个赞
var indexOfStevie = myArray.findIndex(i => i.hello === "stevie");
var searchTerm = "stevie", index = -1;for(var i = 0, len = myArray.length; i < len; i++) { if (myArray[i].hello === searchTerm) { index = i; break; }}
function arrayObjectIndexOf(myArray, searchTerm, property) { for(var i = 0, len = myArray.length; i < len; i++) { if (myArray[i][property] === searchTerm) return i; } return -1;}arrayObjectIndexOf(arr, "stevie", "hello"); // 1
不要在数组上使用.in循环 一旦找到“指针”,一定要跳出循环或返回函数。 注意对象相等
var a = {obj: 0};var b = [a];b.indexOf({obj: 0}); // -1 not found
芜湖不芜
TA贡献1796条经验 获得超7个赞
myArray.map(x => x.hello).indexOf('stevie')
myArray.findIndex(x => x.hello === 'stevie')
添加回答
举报
0/150
提交
取消