更改对象数组Angular 4中的特定字段值

时间:2018-01-25 09:45:16

标签: javascript angular

我喜欢这样的课程

class security
{
 public id:number;
 public name:string;
}

然后我有一个安全数组如下

let s:security[]=[{id:1,name:'Alex'},{id:2,name:'John'},{id:3,name:'Philip'},{id:4,name:'Mark'},{id:5,name:'Thomas'}];

这是一个函数,如果我传递值0,它会将数组的所有名称更改为空字符串。如果我传递了ID,则名称应仅针对该特定ID进行更改。

我试过的是

var id=1;
let s2:security[]=s.find(x=>x.id==id);

然后我必须遍历s2并更改值。但是我想对于这种情况而不是循环我们可以改变 linq

中的选择方法

那么我们如何更改所有对象的对象数组值或不使用循环

进行选择

2 个答案:

答案 0 :(得分:1)

find不返回数组,因此s2是一个对象。你可以这么做:

s2.name = '';

但是,如果您需要更改所有值(在vanilla js中),则必须对数组进行交互。

s.forEach(item => item.name = '');

答案 1 :(得分:0)

在没有循环的情况下,无法对数组的多个元素(在您的情况下为对象数组)执行操作。作为建议,如果你不使用任何库,你可以使用javascript代替循环。

for (var security of s) {
  console.log(security);
  // do your operation here
}