const jumbledNums = [123, 7, 25, 78, 5, 9];
const lessThanTen = jumbledNums.findIndex(num => {
return num < 10;
});
嗨,
我的问题是,此代码段仅返回元素满足条件num < 10
的首次满足索引,但是我想将满足条件的所有索引保存到新数组中。根据我在.findIndex()
的Mozilla文档中阅读的内容,在找到满足条件的元素后,它不会检查其他元素。有什么方法可以对数组中的每个元素重复.findIndex
(例如,使用.map()
)还是我需要使用另一种方法来做到这一点?
答案 0 :(得分:1)
使用Array#reduce()
const jumbledNums = [123, 7, 25, 78, 5, 9];
const lessThanTen = jumbledNums.reduce((a, c, i) => (c < 10 ? a.concat(i) : a), [])
console.log(lessThanTen)
答案 1 :(得分:0)
如果小于十,则可以先映射索引,或者P(75)=F
,然后对索引数组进行过滤以查找有效索引。
n=25
答案 2 :(得分:0)
您可以使用array.filter,它将返回一个新数组,该数组将检查条件。获取值
但是array.filter不返回索引,因此您可以使用array.map,这将创建一个新数组,并且可以使用array.filter删除未定义的大小写。
我希望这能解决问题。
const jumbledNums = [123, 7, 25, 78, 5, 9];
const lessThan10 = jumbledNums.filter(o => o<10)
console.log("array with less than 10", lessThan10)
const lessThan10Indexes = jumbledNums.map((o,i) =>{
return o < 10 ? i : undefined
}).filter(o => o)
console.log("array with less than 10 Indexes", lessThan10Indexes)