Javascript 在多维数组中进行比较以找到在其他多维数组中使用的适当索引失败
我对Javascript中的函数有一个问题: 我只是将一个输入数组与另一个数组进行比较,并根据结果返回一些内容,但由于某些原因,我的比较不起作用 这是我的函数:Javascript 在多维数组中进行比较以找到在其他多维数组中使用的适当索引失败,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我对Javascript中的函数有一个问题: 我只是将一个输入数组与另一个数组进行比较,并根据结果返回一些内容,但由于某些原因,我的比较不起作用 这是我的函数: const createArrayColor = (labels) => { const combi = [ ["bronze","gold","new","silver"], ["bronze","g
const createArrayColor = (labels) => {
const combi = [
["bronze","gold","new","silver"],
["bronze","gold","silver"],
["gold","new","silver"],
["bronze","gold","new"],
["bronze","new","silver"],
["gold","silver"],
["bronze","gold"],
["gold","new"],
["bronze","silver"],
["new","silver"],
["bronze","new"],
["gold"],
["silver"],
["bronze"],
["new"],
];
const color = [
["#614E1A","#c49c48", "#f4f3f3", "#A5A49B"],
["#614E1A", "#c49c48", "#A5A49B"],
["#c49c48", "#f4f3f3", "#A5A49B"],
["#614E1A", "#c49c48", "#f4f3f3"],
["#614E1A", "#f4f3f3", "#A5A49B"],
["#c49c48", "#A5A49B"],
["#614E1A", "#c49c48"],
["#c49c48", "#f4f3f3"],
["#614E1A", "#A5A49B"],
["#f4f3f3", "#A5A49B"],
["#614E1A", "#f4f3f3"],
["#c49c48"],
["#A5A49B"],
["#614E1A"],
["#f4f3f3"],
];
let i = 0;
combi.forEach((c) => {
console.log("Color: " + color[i]);
console.log("Combi: " + c + " ,type: " + c.constructor.name );
console.log("labels: " + labels + " ,type: " + labels.constructor.name );
console.log("Is it equal? " + (labels === c));
if (labels === c) {
return color[i];
}
i = i + 1;
})
}
(顺便说一句,如果你知道如何在JS中组合一个数组,我也很想知道,我相信有更好的方法可以做到这一点,那就是我所做的,但我没有找到它)
如您所见,我将标签
与combi
的每个元素进行比较,但它始终是false
我认为这是我在某处犯的一个小错误,但我找不到它…如果出于某种原因需要保留
forEach
迭代器,则需要在该数组中迭代两次,因为它是多维的,有两个深度
这将找到给定值的第一个匹配项:
const createArrayColor=(标签)=>{
常数组合=[
[“铜”、“金”、“新”、“银”],
[“铜”、“金”、“银”],
[“金”、“新”、“银”],
[“青铜”、“黄金”、“新”],
[“青铜”、“新”、“银”],
[“金”、“银”],
[“青铜”、“黄金”],
[“黄金”、“新”],
[“青铜”、“银”],
[“新”、“银”],
[“青铜”、“新”],
[“黄金”],
[“银”],
[“青铜”],
[“新”],
];
常量颜色=[
[“614E1A”、“c49c48”、“f4f3f3”、“A5A49B”],
[“#614E1A”、“#c49c48”、“#A5A49B”],
[“c49c48”、“f4f3f3”、“A5A49B”],
[“#614E1A”、“#c49c48”、“#F4F3”],
[“#614E1A”、“#f4f3f3”、“#A5A49B”],
[“#c49c48”、“#A5A49B”],
[“#614E1A”、“#c49c48”],
[“#c49c48”、“#F4F3”],
[“#614E1A”、“#A5A49B”],
[“#f4f3f3”、“#A5A49B”],
[“#614E1A”、“#f4f3”],
[#c49c48”],
[“A5A49B”],
[#614E1A”],
[“#f4f3”],
];
设i=0;
让我们共同创造价值;
组合forEach((组合数组,数组索引)=>{
combiArray.forEach((combiLabel,labelIndex)=>{
if(combiLabel==标签&&foundColorValue==未定义){
foundColorValue=颜色[arrayIndex][labelIndex];
}
});
});
返回值;
}
让foundColor=createArrayColor(“银色”);
console.log('found'+foundColor)代码>“c”和“labels”是两个具有精确内容的不同数组。查看此内容以了解如何比较数组。请参见(我会将此标记为重复项,但我无意中链接到了一个不完全相同的问题,并删除了我的标记,现在它不再允许我将其标记为重复项)在多维数组中存储这些颜色和颜色名称值有什么特别的原因吗?为什么不使用带有对的对象作为key:value of label:color?不清楚要记录什么?您可以为实际问题提供示例吗?