我正在嘗試使用 javascript 中的過濾器同時獲取資料和索引。
我有這個物件陣列:
[
{
number: 123,
name: test1
},
{
number: 1234,
name: test14
},
{
number: 1235,
name: test15
},
{
number: 1236,
name: test16
},
]
通過使用過濾器:
let object = array.filter((value) => {
return value.number == 1235;
}
成功回傳物件的輸出。
我的目標是如何在相同的代碼中回傳這個輸出的索引?
這意味著回傳物件值和索引。
無需再次過濾陣列即可獲得值的索引。
uj5u.com熱心網友回復:
您可以先獲取索引:
const idx = array.findIndex((value) => {
return value.number == 1235;
});
然后得到一個物件:
const obj = array[idx];
uj5u.com熱心網友回復:
看起來您有一個與過濾條件相對應的專案,在這種情況下,您可以findIndex
改用:
let index = array.findIndex(value => value.number == 1235);
您也可以使用以下方法查找單個專案find
:
let item = array.find(value => value.number == 1235);
然后獲取索引indexOf
:
let index = array.indexOf(item);
uj5u.com熱心網友回復:
使用這種方式它會作業。
let arr=[
{
number: 123,
name: 'test1'
},
{
number: 1234,
name: 'test14'
},
{
number: 1235,
name: 'test15'
},
{
number: 1236,
name: 'test16'
},
]
let fun = (value,index) => {
value.index =index
return value.number == 1235;
}
console.log([...arr].filter((value,index)=>fun(value,index))
)
uj5u.com熱心網友回復:
盡管您可以修改過濾器內的物件以添加索引,但您不能在過濾器內回傳任何內容,但這不是一個好習慣。應使用過濾器根據給定條件回傳過濾后的物件。您可以使用帶過濾器的地圖
let arr=[
{
number: 1235,
name: 'test1'
},
{
number: 1234,
name: 'test14'
},
{
number: 1235,
name: 'test15'
},
{
number: 1236,
name: 'test16'
},
]
let object = arr.map((obj,index)=>{
return {...obj,index}
}).filter((value) => value.number == 1235)
console.log(object)
或者,如果您只想回圈一次,則使用 foreach
let arr=[
{
number: 1235,
name: 'test1'
},
{
number: 1234,
name: 'test14'
},
{
number: 1235,
name: 'test15'
},
{
number: 1236,
name: 'test16'
},
]
let objct = [];
arr.forEach((obj,index)=>{
if(obj.number ==1235){
objct.push({...obj,index})
}
})
console.log(objct)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/508316.html
標籤:javascript 有角度的
上一篇:與互聯網斷開連接時隱藏模式
下一篇:在操作之前洗掉元素