javascript
javascript字典中添加数组_在javascript中合并两个字典数组
您可以使用
Array#map方法生成新數組(假設兩個數組的順序相同).
var lat = [{key:"2017-09-20T11:51:32.000Z", value:50.7825333},{key:"2017-09-20T11:51:33.000Z", value:50.7826}];
var lon = [{key:"2017-09-20T11:51:32.000Z", value:-1.3075833},{key:"2017-09-20T11:51:33.000Z", value:-1.3076}];
var res = lat
// iterate over the first array
.map(function(o, i) {
// generate the array element
// where get values from element and
// get value from second array using
// the index
return {
time: o.key,
lat: o.value,
lon: lon[i].value
}
})
console.log(res);
// with ES6 arrow function
var res1 = lat.map((o, i) => ({time: o.key, lat: o.value, lon: lon[i].value}))
console.log(res1);
僅供參考:如果相關數組元素的順序不同,則需要通過比較時間值(可以使用Array#find方法)從第二個數組中獲取元素,或者生成一個哈希映射來映射對象.
var lat = [{key:"2017-09-20T11:51:32.000Z", value:50.7825333},{key:"2017-09-20T11:51:33.000Z", value:50.7826}];
var lon = [{key:"2017-09-20T11:51:32.000Z", value:-1.3075833},{key:"2017-09-20T11:51:33.000Z", value:-1.3076}];
var res = lat
.map(function(o) {
return {
time: o.key,
lat: o.value,
// get object by using find method
lon: lon.find(function(o1) {
return o1.key === o.key;
}).value
}
})
console.log(res);
// with ES6 arrow function
var res1 = lat.map(o => ({
time: o.key,
lat: o.value,
lon: lon.find(o1 => o1.key === o.key).value
}))
console.log(res1);
使用hashmap進行引用的更有效方法:
var lat = [{key:"2017-09-20T11:51:32.000Z", value:50.7825333},{key:"2017-09-20T11:51:33.000Z", value:50.7826}];
var lon = [{key:"2017-09-20T11:51:32.000Z", value:-1.3075833},{key:"2017-09-20T11:51:33.000Z", value:-1.3076}];
// generate reference hashmap for getting
// value using the datetime string
var ref = lon.reduce(function(obj, o) {
// set reference
obj[o.key] = o.value;
// return the reference object
return obj;
// set initial value as an empty object
}, {});
var res = lat
.map(function(o) {
return {
time: o.key,
lat: o.value,
// get value from generated reference object
lon: ref[o.key]
}
})
console.log(res);
總結
以上是生活随笔為你收集整理的javascript字典中添加数组_在javascript中合并两个字典数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 只用redis不用mysql的项目_干货
- 下一篇: html 下拉列表美化,JS+CSS实现