Dev*_*vTN 3 javascript arrays jquery
我有以下两个数组
var dataSource = [
{location: "France", January: 79, February: 81, March: 23},
{location: "Germany", January: 98, February: 83},
{location: "Japan", January: 96, March: 11} ];
var Months = ["January","February","March"];
Run Code Online (Sandbox Code Playgroud)
我想遍历每个对象,dataSource并检查的每个对象中是否都Months存在的所有值dataSource。如果该值不存在,dataSource则将该值添加到dataSourcevalue = 100
例如:在德国,不存在月份“ March”,因此我需要按下键和值 March : 100
最后dataSource应该如下
var dataSource = [
{location: "France", January: 79, February: 81, March: 23},
{location: "Germany", January: 98, February: 83, March: 100},
{location: "Japan", January: 96, February: 100, March: 11} ];
Run Code Online (Sandbox Code Playgroud)
我尝试了以前线程中的许多解决方案,但没有得到想要的确切结果。这是我的一些想法
var dataSource = [
{location: "France", January: 79, February: 81, March: 23},
{location: "Germany", January: 98, February: 83},
{location: "Japan", January: 96, March: 11} ];
var Months = ["January","February","March"];
Run Code Online (Sandbox Code Playgroud)
谢谢您的建议。
您可以Array.map()用来迭代dataSource数组。使用内部Array.reduce()变量来迭代月份,并向当前对象添加缺少的月份:
const dataSource = [{"location":"France","January":79,"February":81,"March":23},{"location":"Germany","January":98,"February":83},{"location":"Japan","January":96,"March":11}];
const Months = ["January","February","March"];
const result = dataSource.map(o =>
Months.reduce((obj, m) => m in obj ? obj : { ...obj, [m]: 100 }, o)
);
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |