我目前正在使用下面的函数来查找数组中的值。效果很好。但是我想将其修改为从末尾开始并获取最后一个匹配的值。请帮忙
Array.prototype.indexOfObj = function (key, value) {
for (var i = 0; i < this.length;)
if (this[i++][key] === value) return --i
return -1
}
myArr.indexOfObject("key", "value");
最佳答案
只需从 this.length-1
的最后一个索引开始 for 循环到 0
并返回当前位置:
Array.prototype.lastIndexOfObj = function (key, value) {
for (var i = this.length-1; i >= 0; i--)
if (this[i][key] === value) return i;
return -1
}
// 0 1 2 <-- here 3
let myArray = [{"key":"value", "foo":"bar"}, {"key":"value", "foo":"bar"}, {"key":"value", "foo":"bar"}, {"foo":"bar"} ];
console.log(myArray.lastIndexOfObj("key", "value"));
关于javascript - 从数组末尾开始查找indexof值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49965401/