как нажать один элемент в массив с 15 объектов

голоса
21
var array1 = [{
  candidateId: 57,
  firstName: Sumit,
  lastName: Kumar Gupta,
  displayName: Sumit1,
  locked: false,
  photoId: -1,
  resumeId: -1,
  experience:  6 Months,
  email: [email protected],
  mobile: +91.8100688592,
  prefferedLocation: [
    Bangalore
  ],
  currentEmployer: [

  ],
  skills: [{
    skillName: JAVA,
    level: advanced,
    candidateRating: 5,
    rating: 0
  }],
  viewed: true,
  nextStates: [{
    state: Approach
  }]]


var array2 = [image1]

Я получаю array2изображения из другого запроса , так что я назначен в array2. Теперь я хотел нажать или добавить array2INTO array1. Таким образом , я создал объект

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

и попытался толкая

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

но это не сработало.

Задан 29/05/2018 в 12:20
пользователем
На других языках...                            


3 ответов

голоса
1

array1[i]['image'] = image1;или array1[i].image = image1; Вы должны добавить изображение объекта в значение Array1 с использованием доступа к свойствам.

DEMO

var array1 = [{
 "candidateId": 57,
 "firstName": "Sumit",
 "lastName": "Kumar Gupta",
 "displayName": "Sumit1",
 "locked": false,
 "photoId": -1,
 "resumeId": -1,
 "experience": " 6 Months",
 "email": "[email protected]",
 "mobile": "+91.8100688592",
 "prefferedLocation": [
   "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)

Ответил 29/05/2018 в 12:26
источник пользователем

голоса
0

Похоже, что вы пытаетесь получить доступ пути больше индексов в массиве два, чем доступны.

пытаться:

for(var i=0; i<array1.length;i++){
  array1[i].push(array2[0]);
}
Ответил 29/05/2018 в 12:28
источник пользователем

голоса
1

Если вы пытаетесь отобразить два массива с одинаковыми длинами , где объект из каждой соответствующей позиции индекса должны быть объединен , то вы можете mapпо одному из массивов и использование распространения синтаксиса для мелкой копии и объединить объекты. Такой подход поможет избежать побочных эффектов , если необходимо оставить без изменений либо входной массив.

Код будет выглядеть так:

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

И демо:

var array1 = [{
  "candidateId": 57,
  "firstName": "Sumit",
  "lastName": "Kumar Gupta",
  "displayName": "Sumit1",
  "locked": false,
  "photoId": -1,
  "resumeId": -1,
  "experience": " 6 Months",
  "email": "[email protected]",
  "mobile": "+91.8100688592",
  "prefferedLocation": [
    "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);

Ответил 29/05/2018 в 12:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more