簡體   English   中英

JavaScript 從 Object Id 的選定數組中獲取索引

[英]JavaScript Get Indexes based from the Selected Array of Object Id

今天,我試圖根據我擁有的選定數據 id 獲取 javascript 索引列表。

我正在遵循https://buefy.org/documentation/table/#checkable中的本指南,它需要這樣的內容: checkedRows: [data[1], data[3]]能夠檢查桌子。

我需要做的是根據我的 web API 響應檢查表格。

我有這個示例響應數據。

response.data.checkedRows // value is [{id: 1234}, {id: 83412}]

我有表格中的樣本數據。

const data = [{
    id: 1234,
    name: 'Jojo'
},{
    id: 43221,
    name: 'Jeff'
},{
    id: 83412,
    name: 'Kacey'
}]

所以基本上,我需要動態地擁有一些東西,比如: checkedRows: [data[0], data[2]]因為它匹配來自response.data.checkedRows的數據

到目前為止,我嘗試使用forEach

let selectedIndex = [];
response.data.checkedRows.forEach((d) => {
     this.data.forEach((e) => {
         if (d.id=== e.id) {
             // need the result to be dynamic depending on the response.data.checkedRows
             this.checkedRows = [data[0], data[2]]
         }
     });
});

我被困在這里,因為我不確定如何從響應中獲取與所選 checkRows 匹配的索引。 有什么幫助嗎?

Map 響應checkedRows ,並在回調中,在數組中找到匹配的.find

 const checkedRows = [{id: 1234}, {id: 83412}]; const data = [{ id: 1234, name: 'Jojo' },{ id: 43221, name: 'Jeff' },{ id: 83412, name: 'Kacey' }]; const objs = checkedRows.map(({ id }) => ( data.find(obj => obj.id === id) )); console.log(objs);

如果元素很多,可以使用一組 ID 來查找,以降低計算復雜度:

 const checkedRows = [{id: 1234}, {id: 83412}]; const data = [{ id: 1234, name: 'Jojo' },{ id: 43221, name: 'Jeff' },{ id: 83412, name: 'Kacey' }]; const ids = new Set(checkedRows.map(({ id }) => id)); const objs = data.filter(obj => ids.has(obj.id)); console.log(objs);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM