【发布时间】:2018-03-04 04:29:30
【问题描述】:
我正在寻找一种方法来从数组中的某个点查找 Javascript 中对象的最后一个索引。例如:
array.lastIndexOf(object.key, start);
到目前为止,我还没有找到解决这个问题的好方法。我可以从“开始”点拼接数组,反转它,然后在切片数组中搜索键值,但这对我来说似乎是一个低效的解决方案。
编辑:
为了更详细地说明问题,我发布了我最终用来解决问题的代码。本质上;我所做的是使用 While 循环遍历数组中的先前值。
getLastValue = (index) => {
const arr = [
{'d':'01-02-2017','v':'123'},
{'d':'02-02-2017'},
{'d':'04-02-2017'},
{'d':'05-02-2017','v':'456'},
...
];
let lastValue;
while (arr[index] && !arr[index].v) {
index--;
}
lastValue = arr[index];
return lastValue;
}
【问题讨论】:
-
这是一个数组,对吧?你正在寻找最后一个实例?一个简单的
for(x = array.length - 1; x >= start; x--) {if (array[x] == object.key) return x; }不起作用有什么原因吗? ** 请注意,我的数学很糟糕,所以可能是x > start -
lastIndexOf到底有什么不好的地方? -
@Bergi 它处理原始类型,而不是对象,请参阅我提出的解决方案
标签: javascript arrays object ecmascript-6 lastindexof