【发布时间】:2019-03-06 10:58:16
【问题描述】:
我对 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...
我认为这是我在某个地方犯的一个小错误,但我找不到它......
【问题讨论】:
-
见this question(我会将此标记为重复,但我不小心链接到一个不完全相同的问题,并删除了我的标记,现在它不会让我将其标记为又是一个骗局)
-
是否有特殊原因将这些颜色和颜色名称值存储在多维数组中?
-
你为什么不使用对象对 key:value of label:color?
-
不清楚你想做什么
标签: javascript arrays multidimensional-array