javascript - 从数组末尾开始查找indexof值

标签 javascript arrays json function

我目前正在使用下面的函数来查找数组中的值。效果很好。但是我想将其修改为从末尾开始并获取最后一个匹配的值。请帮忙

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/

相关文章:

javascript - 在 html 标签内序列化 javascript 代码

javascript - 无法访问 Angular 中 Controller 内的范围变量

boolean 值与数字比较中的 JavaScript 真实性

javascript - 如何在新订阅上获取发布到观察者的所有值?

python - 实例化 boolean 二维数组的理解?

java - 如何从 String[] 数组填充 Point[] 数组?

java - 如何在 Gson 中动态启用/禁用一个字段序列化

JavaScript - 如何从 JSON 对象中获取特定值

javascript - 使用 Javascript 打开和关闭显示内容

javascript - 比较 html 标签内变量的正则表达式