我有兩個不同的陣列,如下所示。
1st Array : arr1
0: {ID: '1', Name: 'Suyog Patil', IsSelected: false, Location: 'Mumbai'}
1: {ID: '2', Name: 'John Doe', IsSelected: false, Location: 'London'}
2: {ID: '3', Name: 'Santosh Sarnobat', IsSelected: false, Location: 'Panvel'}
3: {ID: '4', Name: 'Sai Panhalkar', IsSelected: false, Location: 'Belapur'}
2nd Array : arr2
0: {ID: '1', IsSelected: true}
1: {ID: '3', IsSelected: true}
現在,我想用 ID 屬性相同的 array2 的屬性替換 array1 的屬性。
所以,最終的陣列看起來像(我需要得到低于輸出)
0: {ID: '1', Name: 'Suyog Patil', IsSelected: true, Location: 'Mumbai'} //Replaced value
1: {ID: '2', Name: 'John Doe', IsSelected: false, Location: 'London'}
2: {ID: '3', Name: 'Santosh Sarnobat', IsSelected: true, Location: 'Panvel'} //Replaced value
3: {ID: '4', Name: 'Sai Panhalkar', IsSelected: false, Location: 'Belapur'}
在這里,您可以看到,IsSelected 屬性被替換為 true,其中 ID 等于 1 和 3。
這是我迄今為止嘗試過的,但無法實作。
arr3 = [].concat(arr1, arr2);
但是,它給出了 6 個結果,正如函式所說的那樣,它實際上是 concats
uj5u.com熱心網友回復:
在上面嘗試時,我嘗試用回圈陣列解決,它得到了解決。
arr1 = [];
arr1.push({"ID":"1","Name":"Suyog Patil","IsSelected":false,"Location":"Mumbai"});
arr1.push({"ID":"2","Name":"John Doe","IsSelected":false,"Location":"London"});
arr1.push({"ID":"3","Name":"Santosh Sarnobat","IsSelected":false,"Location":"Panvel"});
arr1.push({"ID":"4","Name":"Sai Panhalkar","IsSelected":false,"Location":"Belapur"});
arr2 = [];
arr2.push({"ID":"1","IsSelected":true});
arr2.push({"ID":"3","IsSelected":true});
console.log("-----ARRAY 1-----");
console.log(arr1);
console.log("-----ARRAY 2-----");
console.log(arr2);
arr3 = arr1;
$(arr3).each(function(i,v){
$(arr2).each(function(ix,vx){
if(v.ID == vx.ID)
{
v.IsSelected = vx.IsSelected;
}
})
});
console.log("-----ARRAY 3-----");
console.log(arr3);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
uj5u.com熱心網友回復:
這是一個使用非常簡化的代碼的非 jQuery 版本
const arr1 = [
{"ID":"1","Name":"Suyog Patil","IsSelected":false,"Location":"Mumbai"},
{"ID":"2","Name":"John Doe","IsSelected":false,"Location":"London"},
{"ID":"3","Name":"Santosh Sarnobat","IsSelected":false,"Location":"Panvel"},
{"ID":"4","Name":"Sai Panhalkar","IsSelected":false,"Location":"Belapur"}
],
arr2 = [{"ID":"1","IsSelected":true}, {"ID":"3","IsSelected":true}],
arr3 = arr1.map(item => ({...item,IsSelected: arr2.find(({ID}) => ID === item.ID) || false}))
console.log("-----ARRAY 3-----");
console.log(arr3);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414910.html
標籤:
上一篇:使用javascript根據日期對json資料進行排序
下一篇:不能為了我的生活讓它在C 中對齊
