我想獲取過濾陣列的索引
const arr = ['apple', 'mango', 'orange', 'banana'];
const customFilter = (arr, searchtxt) => {
const result = [];
arr.filter(fruit => fruit.match(searchtxt)).forEach((element, index) => {
result.push(index);
});
return result;
}
console.log(customFilter(arr, 'ma'));
uj5u.com熱心網友回復:
您回傳的是過濾陣列中的索引,而不是原始陣列中的索引。
不要filter()用于此。只需使用forEach(),將索引推入結果中。
const arr = ['apple', 'mango', 'orange', 'banana'];
const customFilter = (arr, searchtxt) => {
const result = [];
arr.forEach((fruit, index) => {
if (fruit.match(searchtxt)) {
result.push(index);
}
})
return result;
}
console.log(customFilter(arr, 'ma'));
uj5u.com熱心網友回復:
您可以使用reduce. 對于輸入中的每個專案,如果它與給定的字串匹配,下面的代碼將其索引添加到陣列中。
const arr = ['apple', 'mango', 'orange', 'banana'];
const customFilter = (arr, searchtxt) => {
return arr.reduce((a, c, i) => c.match(searchtxt) ? [...a, i] : a, [])
}
console.log(customFilter(arr, 'ma'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/358104.html
標籤:javascript 数组 细绳 筛选
