Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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中的多个数组_Javascript - Fatal编程技术网

如何使用第一个元素合并JavaScript中的多个数组

如何使用第一个元素合并JavaScript中的多个数组,javascript,Javascript,我有这样的数组 var arr1=["cat","blue","1"]; var arr2=["cat","red","1"]; var arr3=["cat","yellow","1"]; var arr4=["dog","blue","1"]; var arr5=["dog","red","1"]; 。 我期待一个像这样的结果 var arr1=["cat","blue,red,yellow","1"]; var arr2=["dog","blue,red","1"]; 我首先要做的是

我有这样的数组

var arr1=["cat","blue","1"];
var arr2=["cat","red","1"];
var arr3=["cat","yellow","1"];
var arr4=["dog","blue","1"];
var arr5=["dog","red","1"];

我期待一个像这样的结果

var arr1=["cat","blue,red,yellow","1"];
var arr2=["dog","blue,red","1"];

我首先要做的是:

//有一个要循环的数组。
var mainArray=[];
主数组。推送([“猫”、“蓝”、“1”);
主数组。推送([“猫”,“红”,“1”);
主数组。推送([“猫”、“黄”、“1”);
主数组。推送([“dog”,“blue”,“1”]);
主数组。推送([“dog”,“red”,“1”]);
//结果对象。
var resultObject={};
对于(变量i=0;i您正在查找数据结构。创建一个包含所有阵列的集合,然后删除重复的阵列。
要修改其他用户的答案,请执行以下操作:

// Have a single array to loop through.
var mainArray = [];
mainArray.push(["cat", "blue", "1"]);
mainArray.push(["cat", "red", "1"]);
mainArray.push(["cat", "yellow", "1"]);
mainArray.push(["dog", "blue", "1"]);
mainArray.push(["dog", "red", "1"]);

// Result Object.
var resultObject = {};
for (var i = 0; i < mainArray.length; i++) {
  if (!resultObject[mainArray[i][0]]) {
    resultObject[mainArray[i][0]] = [];
  }
  resultObject[mainArray[i][0]] = resultObject[mainArray[i][0]].concat(mainArray[i]);

}



 for (var key in resultObject) {
  if (resultObject.hasOwnProperty(key)) {
    resultObject[key] = new Set(resultObject[key])
    resultObject[key] = Array.from(resultObject[key])
  }
}
console.log(resultObject)
//有一个要循环的数组。
var mainArray=[];
主数组。推送([“猫”、“蓝”、“1”);
主数组。推送([“猫”,“红”,“1”);
主数组。推送([“猫”、“黄”、“1”);
主数组。推送([“dog”,“blue”,“1”]);
主数组。推送([“dog”,“red”,“1”]);
//结果对象。
var resultObject={};
对于(变量i=0;i
您为什么会期望这样的结果?从您向我们展示的内容来看,您什么也没做……然后您需要编写一些代码。我通常在python中设置“set”函数来实现这一点,但我在javascript中的目标通常是迭代每个数组中的元素,并将它们设为对象中的键(以删除重复项),然后重新创建阵列…还有其他人有更好的解决方案吗?问题是什么?要解释一切都太宽泛,似乎“Set”数据结构自上次检查以来已获得主流跨浏览器支持……这正是您想要的。什么是浏览器支持?似乎很合法,除了IE,它已经被edge.Oops取代。对不起<代码>:P