假设我们得到了这样的对象
growthArr.push.apply(growthArr, parentArr)
我们拥有的是
let formA = {
"a1": 1, "b1":2, "c1":3,
"a2": 11, "b2":12, "c2":13,
"a3": 21, "b3":22, "c3":23
}
结果必须是
let formB = {
"a1": 0, "b1":0, "c1":0,
"a2": 0, "b2":0, "c2":0
}
一旦给定的对象属性被填满,它必须为其余的映射类序列创建一个新对象。
答案 0 :(得分:0)
构建一个数组,该数组保存包含formA的所有值所需的formB形状的对象。
通过使用来自formA的值(以formB的键/值的数量的值的组)填充值来构建[key,value]对。使用fromEntries将其转换为对象。
let formA = {
"a1": 1, "b1":2, "c1":3,
"a2": 11, "b2":12, "c2":13,
"a3": 21, "b3":22, "c3":23
}
let formB = {
"a1": 0, "b1":0, "c1":0,
"a2": 0, "b2":0, "c2":0
}
const keys = Object.keys(formB)
const values = Object.values(formA)
console.log(
// build array that is formA.size/formB.size rounded up, map values
Array(Math.ceil(values.length/keys.length)).fill().map((obj,i) =>
// build object using keys from formB, with values from formA
Object.fromEntries(keys.map((key,j)=>[key,values[i*keys.length+j]||0])))
)
答案 1 :(得分:-1)
您的帖子不清楚,但我认为您正在尝试将两个对象合并为一个。
这可以通过es6 spread operator
完成。 Here is the MDN docs代表spread operator
。
这是我写的一个示例,显示如何使用spread operator
合并两个对象,然后记录合并对象的键/值:
let object1 = {
firstKey: 'firstValue',
secondKey: 'secondValue'
};
let object2 = {
secondObjectKey: 'secondObjectValue'
}
let mergeObjects = {...object1, ...object2};
for (const [key, value] of Object.entries(mergeObjects)) {
console.log(`${key}: ${value}`);
}
您也可以在code sandbox中查看示例。