Angular: функция карты останавливает цикл после выполнения условия - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть мой угловой код, как показано ниже.Я зацикливаюсь на своем массиве, чтобы найти определенный элемент и отобразить данные.После того, как я нахожу свой элемент, я хочу прекратить зацикливание, так как элемент уникален, и я не хочу дальнейшую проверку

this.staffData.map(staff => {
  if(staff.id === staffId){
    staff.name === newStaffName;
    staff.dept = newDept;
    staff.address = newAddress//After this I want to break 
}})

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Вот простая, аннотированная альтернатива с Array.findIndex():

staff = [{
    name: "Mark",
    dept: "Sales",
    address: "123 Fake St"
  },
  {
    name: "Jim",
    dept: "Sales",
    address: "123 Real St"
  },
  {
    name: "Fred",
    dept: "Sales",
    address: "123 Imaginary Ln"
  }
];

console.dir(staff);

// Find the index of the person based on whatever criteria you want
index = staff.findIndex(person => person.name === "Jim");

// Update that index with a new object
staff[index] = {
  // Retain values you don't want to change
  name: staff[index].name,
  address: staff[index].address,
  
  // Change those you do
  dept: "Development"
}

console.dir(staff);
0 голосов
/ 27 февраля 2019

Вы хотите использовать find вместо:

const newStaffName = this.staffData.find(staff => staff.id === staffId).name;
...