在javascript中将键值对存储在数组中

在javascript中将键值对存储在数组中,javascript,arrays,object,keyvaluepair,Javascript,Arrays,Object,Keyvaluepair,我有两个数组,即 configdata = ["assignee", "shortDesc"]; ticketarray = ["Tom","testDesc"]; 我想将这些值作为键值对存储在另一个数组中,如下所示: ticketData = ["assignee":"Tom","shortDesc":"testDesc"]; 请注意数组值是动态的,所以我不能硬编码它们。 有没有办法做到这一点?我能够达到上述要求,但长度始终显示为0。这是我正在使用的代码: configdata.Incid

我有两个数组,即

configdata = ["assignee", "shortDesc"];
ticketarray = ["Tom","testDesc"];
我想将这些值作为键值对存储在另一个数组中,如下所示:

ticketData = ["assignee":"Tom","shortDesc":"testDesc"];
请注意数组值是动态的,所以我不能硬编码它们。 有没有办法做到这一点?我能够达到上述要求,但长度始终显示为0。这是我正在使用的代码:

configdata.Incident_Field.forEach(function (k, i) {
   this[k] = ticketarray[i];
}, ticketData);

以下内容在JavaScript中不是有效的结构:

ticketData=[“受让人”:“Tom”,“shortDesc”:“testDesc”]

你需要的是一份工作。您所能做的就是:

  • 确保两个数组长度相同
  • 通过创建新对象来关联键和值
  • 使用
    Object.keys(obj).length
    确定长度
  • 从以下代码开始:

    configdata=[“受让人”、“短描述”];
    ticketarray=[“Tom”,“testDesc”];
    if(configdata.length==ticketarray.length){
    var obj={};
    对于(var i=0;ilog(“对象的长度:”+Object.keys(obj.Length))其他人已经解释了为什么您的代码不起作用。我正在使用
    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"
    }
    

    使用对象!:-)你不能有这样的数组。(星号,脚注,好吧,你可以,但它不是你想象的那样。)你想要的是一个对象(
    {assignment:'Tom',…}
    )。你使用一个对象作为键值对@deceze我不知道那是什么?编辑:cf当然可以,但不是你想象的那样。@Ivan数组也是对象,你可以为它们指定任意属性……我不确定这个问题是否需要答案,因为它是基本的JavaScript@Ivan啊,你为什么这么认为?可能是用户和我一样非常新。是的,这就是为什么它不需要在这里回答。@伊凡也在你的评论中说你不确定什么是正确的,你也可以考虑这个回答你的问题。所以这就像是用一块石头打两只鸟……:)我知道JavaScript对象是什么。我想你误解了deceze说的话:“你不能有这样的数组(星号,脚注,你可以,但它不是你想象的那样)。”。他指的不是物体,而是我不知道的其他东西。