我需要var idx = [4, 6, 5];按這個確切順序輸出值。
// what im getting
// i: 0 id: 4 rating: 999
// i: 2 id: 5 rating: 333
// i: 1 id: 6 rating: 666
//
// what im hoping for
// i: 0 id: 4 rating: 999
// i: 1 id: 6 rating: 666
// i: 2 id: 5 rating: 333
var data = [{
"id": 1,
"rating": 55
},
{
"id": 2,
"rating": 22
},
{
"id": 3,
"rating": 111
},
{
"id": 4,
"rating": 999
},
{
"id": 5,
"rating": 333
},
{
"id": 6,
"rating": 666
}
];
var idx = [4, 6, 5];
$.each(data, function() {
for (var i = 0; i < idx.length; i) {
if (idx[i] == this.id) {
console.log('i: ' i ' id: ' this.id ' rating: ' this.rating);
}
}
});
uj5u.com熱心網友回復:
您的問題由 Array.map 解決;Jusr 映射您的 idx 值:
var mappedData = idx.map(function (idx) { return data.find(function (dataItem) { return dataItem.id === idx }) })
輸出是這樣的:
mappedData.forEach(function (v) { console.log('id: ' v.id ' rating: ' v.rating); })
編號:4 評分:999 編號:6 評分:666 編號:5 評分:333
uj5u.com熱心網友回復:
您只是回圈使用錯誤的串列:)
var data = [{
"id": 1,
"rating": 55
},
{
"id": 2,
"rating": 22
},
{
"id": 3,
"rating": 111
},
{
"id": 4,
"rating": 999
},
{
"id": 5,
"rating": 333
},
{
"id": 6,
"rating": 666
}
];
var idx = [4, 6, 5];
idx.forEach((id, index) => {
const myData = data.find(x => x.id == id);
console.log(`i:${index} id:${myData.id} rating: ${myData.rating}`)
});

uj5u.com熱心網友回復:
for (let i = 0; i < idx.length; i ) {
const rating_ind = data.findIndex(e => e.id == idx[i])
if (rating_ind > -1) {
console.log('i: ' i ' id: ' idx[i] ' rating: ' data[rating_ind].rating);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/486090.html
標籤:javascript jQuery json
上一篇:如何使ListTile零高度
