Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将多个json数组合并到一个数组中_Javascript_Arrays_Json - Fatal编程技术网

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]),不清楚这应该如何工作,等等