第一个数组-
var a = [
"2022-01",
"2022-02",
"2022-03",
"2022-04",
"2022-05",
"2022-06",
"2022-07",
"2022-08",
"2022-09",
"2022-10",
"2022-11",
"2022-12"]
第二个目标:{ "2022-05":44922,"2022-06":25 }
我想要的输出应该是这样的:
var c = [{date: 2022-01, value:'' },{date: 2022-02, value:'' },{date: 2022-03, value:'' },{date: 2022-04, value:'' },{date: 2022-05, value:44922 },{date: 2022-06, value:25 },{date: 2022-07, value:'' },{date: 2022-08, value:'' },{date: 2022-09, value:'' },{date: 2022-10, value:'' },{date: 2022-11, value:'' },{date: 2022-12, value:'' }]如果在对象中存在相应的日期值,那么在新数组上的值应该是该值,否则它应该是空的。
我尝试了很多方法,但没有找到任何解决方案,因为我对Javascript非常陌生。
任何人都可以帮我,拜托!
发布于 2022-06-01 19:43:05
var a = [
"2022-01",
"2022-02",
"2022-03",
"2022-04",
"2022-05",
"2022-06",
"2022-07",
"2022-08",
"2022-09",
"2022-10",
"2022-11",
"2022-12"
];
var b = { "2022-05": 44922, "2022-06": 25 };
var c = a.map(date => ({date, value: b[date] || ''}));
console.log(c);
我使用.map()循环数组a,为每次迭代返回一个新对象。更多信息:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/map
该对象的值试图在b( bdate )中找到相应的值,如果它找不到任何东西( bdate ===未定义),那么它将设置一个空字符串。
发布于 2022-06-01 19:48:48
非常简单,只需创建一个transform函数并检查json数组中是否存在该值,这将在任何版本的javascript中运行,并且它也不使用任何内置的js数组函数。易懂
var a = [
"2022-01",
"2022-02",
"2022-03",
"2022-04",
"2022-05",
"2022-06",
"2022-07",
"2022-08",
"2022-09",
"2022-10",
"2022-11",
"2022-12"
]
var b = { "2022-05": 44922, "2022-06": 25 };
function transformObject(a, b) {
var res = [];
for (i in a) {
res.push({
date : a[i],
value : b[a[i]] || ''
})
}
return res;
}
var result = transformObject(a, b)https://stackoverflow.com/questions/72467183
复制相似问题