我必须使用相关的数组。
const unsigned char*
我是这样创建的,因为我在之前的步骤中需要唯一的ID,现在我必须在我绘制它们的图表中为每一对使用相同的颜色。
我的目标是使用以下格式生成一个字符串:
shortArray = ["ID-111", "ID-222"]
longArray = ["ID-111 bis", "ID-222 bis"]
我试着这样做:
{
"ID-111 bis" : chart.color("ID-111"),
"ID-222 bis" : chart.color("ID-222"),
...
}
这给了我错误的输出:
const result = {}
for(const item of longArray) {
result[item]=[];
result[item].push({item : "chart.color(" + shortArray+ ")"});
}
任何想法我应该改变什么?
稍后编辑:
我看到许多非常相似的答案,但必须遵守一个条件:
第二个参数不应该在引号中。
{
"ID-111 bis" :[{item: "chart.color(ID-111,ID-222)"}],
"ID-222 bis" :[{item: "chart.color(ID-111,ID-222)"}]
}
- 好
"ID-111 bis" : chart.color("ID-111")
- 糟糕
答案 0 :(得分:1)
为什么要制作数组并将元素推入内部?如果你想获得如下布局:
{
"ID-111 bis" : chart.color("ID-111"),
"ID-222 bis" : chart.color("ID-222"),
...
}
只需删除[]
部分。
const result = {}
for(const item of longArray) {
result[item] = { "item" : "chart.color(" + shortArray+ ")"});
}
答案 1 :(得分:1)
如果两个数组的长度相同:
shortArray = ["ID-111", "ID-222"]
longArray = ["ID-111 bis", "ID-222 bis"]
result = {}
for (var i = 0; i < longArray.length; i++) {
result[ longArray[i] ] = "chart.color(" + shortArray[i] + ")";
}
答案 2 :(得分:1)
您可以使用数组的.reduce
函数
var shortArray = ["ID-111", "ID-222"]
var longArray = ["ID-111 bis", "ID-222 bis"]
var result = longArray.reduce((res,key,index)=>{
// Can call chart.color without quotes if that's requirement
res[key] = 'chart.color("'+shortArray[index]+'")';
return res;
},{})
console.log(result)