【发布时间】:2018-06-03 16:37:16
【问题描述】:
在 JavaScript 中,我有以下数组
var arr = [5, 10, 2, 7];
从该数组中,我想获得一个仅包含小于 10 项的索引的数组。因此,在上面的示例中,索引数组将是
var indexes = [0, 2, 3];
现在,我想要一些与 filter 类似的东西,但这会返回索引。
如果我尝试filter,它将是这样工作的
var newArr = arr.filter(function (d) {
return (d < 10);
});
// newArr will be: [5, 2, 7];
这不是我想要的。我想要以下几行的东西(注意这是一个伪代码)
var indexes = arr.filter(function (d) {
/* SOMETHING ALONG THE FOLLOWING PSEUDOCODE */
/* return Index of filter (d < 10); */
});
// indexes will be: [0, 2, 3];
我该怎么做?谢谢。
【问题讨论】:
-
@Li357 - 我试过了。不起作用。因为地图会被索引到新的过滤数组,这会导致索引移位。
-
什么意思?
-
@Greeso ...
filter不会改变原始数组。您仍然可以使用原始数组arr从过滤后的数组中获取索引。 -
好吧,如果原始数组中的项目具有相同的值怎么办。然后就不行了。
标签: javascript arrays indexing filter