Javascript 将多个json数组合并到一个数组中
我有以下阵列:Javascript 将多个json数组合并到一个数组中,javascript,arrays,json,Javascript,Arrays,Json,我有以下阵列: const字符=[{ 汤姆:{}, 杰瑞:{} }] 常量数据1=[{ 种类:'猫', 性别:'男性' }] 常数数据2=[{ 物种:'老鼠', 性别:'男性' }] 最后一个数组应该如下所示: const字符=[{ 汤姆:{ 种类:'猫', 性别:'男性' }, 杰瑞:{ 物种:'老鼠', 性别:'男性' }, 特征3:{ //这里是数据3 }, 特征4:{ //这里是数据4 } }] 如何将数据推送到主阵列中的位置 如果我有更多的字符,我将有更多的数据推送,相对于字符。首
const字符=[{
汤姆:{},
杰瑞:{}
}]
常量数据1=[{
种类:'猫',
性别:'男性'
}]
常数数据2=[{
物种:'老鼠',
性别:'男性'
}]
最后一个数组应该如下所示:
const字符=[{
汤姆:{
种类:'猫',
性别:'男性'
},
杰瑞:{
物种:'老鼠',
性别:'男性'
},
特征3:{
//这里是数据3
},
特征4:{
//这里是数据4
}
}]
如何将数据推送到主阵列中的位置
如果我有更多的字符,我将有更多的数据推送,相对于字符。首先从数组或字典中取出字符键。两者都用是无用的 之后,您可以循环字符键,并将数据设置为值 代码:
const characters={Tom:{},Jerry:{};
const multiple_data=[{物种:'Cat',性别:'Male'},{物种:'Mouse',性别:'Male'}];
对于(i=0;i
输出:
[Jerry: {Species: "Mouse", Gender: "Male"}, Tom: {Species: "Cat", Gender: "Male"}]
根据定义,JavaScript对象是零个或多个名称/值对(,)的无序集合。它在某些情况下可能会起作用,但只要您继续将
字符
用作对象而不是数组,您可能会得到一些意想不到的结果
如果您将方法改为使用字符
作为数组,这非常简单。我会这样做:
const characters=[“汤姆”、“杰瑞”];
常量数据1={
种类:'猫',
性别:'男性'
};
常数数据2={
物种:'老鼠',
性别:'男性'
};
const characterAssign=(characters,…datasets)=>Object.fromEntries(characters.slice(0,datasets.length).map((character,i)=>[character,datasets[i]]);
const charactersObj=characterAssign(字符、数据1、数据2);
console.log(charactersObj);
// ➞ {杰瑞:{物种:“老鼠”,性别:“雄性”},汤姆:{物种:“猫”,性别:“雄性”}
console.log(charactersObj.Jerry);
// ➞ {物种:“老鼠”,性别:“雄性”}
console.log(charactersObj.Tom.Species);
// ➞ “猫”
我们的characterAssign
函数slice(0,datasets.length)
的第一部分确保我们只处理传递到函数中的数据集数量相同的字符。因此,如果要传入一个只有两个数据集的[“Tom”、“Jerry”、“Spike”]
数组,“Spike”将从返回的对象中排除,因为没有为其提供数据集。这是质量保证
接下来,我们通过索引值(
0,1,…
)将传递到函数中的数据集映射到每个字符。这将为每个字符创建一个数组。最后,所有这些都由对象.fromEntries
方法计算,并转换为一个对象,以便在返回的函数中通过名称引用字符。如果data1由多个元素组成,例如,这些元素是数组,而不是JSON数组,该怎么办。JSON是一种文本格式。无论如何,所有数组都只有一个元素,这是毫无意义的。也没有任何类型的引用将data1
连接到字符[0]。Tom
。因此,除了对关系进行硬编码(即字符[0]),不清楚这应该如何工作代码>,等等