我有2个数组,
configdata = ["assignee", "shortDesc"];
ticketarray = ["Tom","testDesc"];
我想将值作为键值对存储在另一个数组中,如下所示:
ticketData = ["assignee":"Tom","shortDesc":"testDesc"];
请注意,数组值是动态的,因此我无法对其进行硬编码。 有办法吗?我能够满足上述要求,但长度始终显示为0。这是我正在使用的代码:
configdata.Incident_Field.forEach(function (k, i) {
this[k] = ticketarray[i];
}, ticketData);
答案 0 :(得分:1)
其他人已经解释了为什么您的代码不起作用。我正在使用reduce
提供另一种解决方案。
const configdata = ["assignee", "shortDesc"];
const ticketarray = ["Tom", "testDesc"];
let ticketData = configdata.reduce((result, value, index) => {
result[value] = ticketarray[index];
return result;
}, {});
console.log(ticketData);
输出:
{
assignee: "Tom",
shortDesc: "testDesc"
}
答案 1 :(得分:0)
以下不是JavaScript中的有效结构:
ticketData = ["assignee":"Tom","shortDesc":"testDesc"];
您需要的是JavaScript object。您能做的最好的事情是:
Object.keys(obj).length
确定长度。从以下代码开始:
configdata = ["assignee", "shortDesc"];
ticketarray = ["Tom", "testDesc"];
if (configdata.length == ticketarray.length) {
var obj = {};
for (var i = 0; i < configdata.length; i++)
obj[configdata[i]] = ticketarray[i];
}
console.log("Final Object");
console.log(obj);
console.log("Object's Length: " + Object.keys(obj).length);
以上内容将为您提供您喜欢的对象,一个具有所有值的变量:
{
"assignee": "Tom",
"shortDesc": "testDesc"
}