我对 Javascript 中的函数有疑问:
我只是将一个输入数组与另一个数组进行比较,并根据结果返回一些内容,但出于某种原因,我的比较不起作用...
这是我的函数:
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 中组合数组,我也想知道,我确信有比我所做的更好的方法,但我没有找到)
正如你所看到的,我将 labels
与 combi
的每个元素进行了比较,但它始终为 false
...
我认为这是我在某个地方犯的一个小错误,但我找不到它...
最佳答案
“c”和“labels”是两个不同的数组,内容完全相同。请参阅此 question 以了解如何比较数组。
关于javascript - 在多维数组中比较以找到在其他多维数组中使用的适当索引失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55021427/