代码之家  ›  专栏  ›  技术社区  ›  Nicoleta Wilskon

如何将一个项目推入15个对象的数组中

  •  0
  • Nicoleta Wilskon  · 技术社区  · 6 年前
    var array1 = [{
      "candidateId": 57,
      "firstName": "Sumit",
      "lastName": "Kumar Gupta",
      "displayName": "Sumit1",
      "locked": false,
      "photoId": -1,
      "resumeId": -1,
      "experience": " 6 Months",
      "email": "sumit1@test.com",
      "mobile": "+91.8100688592",
      "preferredLocation": [
        "Bangalore"
      ],
      "currentEmployer": [
    
      ],
      "skills": [{
        "skillName": "JAVA",
        "level": "advanced",
        "candidateRating": "5",
        "rating": 0
      }],
      "viewed": true,
      "nextStates": [{
        "state": "Approach"
      }]]
    
    
    var array2 = [image1]
    

    我得到了 array2 来自其他请求的图像,因此我分配到 ARARY2 . 现在我想推或添加这个 ARARY2 进入之内 array1 . 所以我创建了一个对象

    'image'  
    array2.push({'image':image1})
    

    试着推

    for(var i=0; i<array1.length;i++){
      array1[i].push(array2[i]);
    }
    

    但它不起作用。

    3 回复  |  直到 6 年前
        1
  •  1
  •   marc_s    6 年前

    array1[i]['image'] = image1; array1[i].image = image1;

    您需要使用属性访问器将图像对象添加到array1值。

    演示

    var array1 = [{
     "candidateId": 57,
     "firstName": "Sumit",
     "lastName": "Kumar Gupta",
     "displayName": "Sumit1",
     "locked": false,
     "photoId": -1,
     "resumeId": -1,
     "experience": " 6 Months",
     "email": "sumit1@test.com",
     "mobile": "+91.8100688592",
     "preferredLocation": [
       "Bangalore"
     ],
     "currentEmployer": [
    
     ],
     "skills": [{
       "skillName": "JAVA",
       "level": "advanced",
       "candidateRating": "5",
       "rating": 0
     }],
     "viewed": true,
     "nextStates": [{
       "state": "Approach"
     }]
    }]
    
    for (var i = 0; i < array1.length; i++) {
     array1[i]['image'] = 'image1';
    }
    console.log(array1)
        2
  •  1
  •   marc_s    6 年前

    如果试图映射两个长度相等的数组,其中每个索引位置的对象将被合并,则可以 map 在其中一个数组上使用 spread syntax 浅复制和合并对象。如果任何一个输入数组需要保持不变,这种方法将有助于防止副作用。

    代码为:

    array1.map((obj, i) => ({...obj, image: array2[i]}));
    

    A演示:

    var array1 = [{
      "candidateId": 57,
      "firstName": "Sumit",
      "lastName": "Kumar Gupta",
      "displayName": "Sumit1",
      "locked": false,
      "photoId": -1,
      "resumeId": -1,
      "experience": " 6 Months",
      "email": "sumit1@test.com",
      "mobile": "+91.8100688592",
      "preferredLocation": [
        "Bangalore"
      ],
      "currentEmployer": [
    
      ],
      "skills": [{
        "skillName": "JAVA",
        "level": "advanced",
        "candidateRating": "5",
        "rating": 0
      }],
      "viewed": true,
      "nextStates": [{
        "state": "Approach"
      }]
    }];
    
    
    var array2 = ["image1"];
    
    var combined = array1.map((obj, i) => ({...obj, image: array2[i]}));
    
    console.log(combined);
        3
  •  0
  •   Mark Reimer    6 年前

    看起来您试图访问的数组2中的索引比可用索引多。

    for(var i=0; i<array1.length;i++){
      array1[i].push(array2[0]);
    }