Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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_Arrays_Object - Fatal编程技术网

如何在JavaScript中比较对象的键?

如何在JavaScript中比较对象的键?,javascript,arrays,object,Javascript,Arrays,Object,我需要你的帮助: 我有一个包含对象的数组(数据): var data = [ 0: Object { hex: "#ff847f", length: "20" } 1: Object { hex: "#afff90", length: "18" } 2: Object { hex: "#afff90", length: "40" } 3: Object { hex: "#6d91b0", length: "30" } 4: Object { hex: "#ff847f", length: "20

我需要你的帮助: 我有一个包含对象的数组(数据):

var data = [
0: Object { hex: "#ff847f", length: "20" }
1: Object { hex: "#afff90", length: "18" }
2: Object { hex: "#afff90", length: "40" }
3: Object { hex: "#6d91b0", length: "30" }
4: Object { hex: "#ff847f", length: "20" }
]
我需要一个函数,它将生成一个新数组,该数组只有唯一的十六进制值,并将相等十六进制值的长度值相加

结果应该如下所示:

var data2 = [
0: Object { hex: "#ff847f", length: "40" }
1: Object { hex: "#afff90", length: "58" }
2: Object { hex: "#6d91b0", length: "30" }
]

谢谢你的想法。

这可能不是最好的解决方案,但它确实有效。具有挑战性的一点是,您希望将长度作为字符串而不是数字。这是我的解决方案,我希望它有帮助

const transformArray=(arr)=>{
//首先,您需要将长度转换为数字,以便于添加
arr.map((项目)=>{
item.length=编号(item.length)
})
//然后组合相似的对象
让输出=[];
arr.forEach((dataObj)=>{
让发现=错误;
for(设i=0;i{
item.length=item.length.toString();
})
返回输出;

}
可能的重复至少表明在我们做家庭作业之前,您试图编写JavaScript函数。抱歉,但我不知道。此外,没有人强迫您做我的“家庭作业”