Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 改变对象数组中的特定字段值角度4_Javascript_Angular - Fatal编程技术网

Javascript 改变对象数组中的特定字段值角度4

Javascript 改变对象数组中的特定字段值角度4,javascript,angular,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,那个么这个特

我喜欢这样的课

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中的select方法,而不是循环


因此,我们如何在不使用循环的情况下更改所有对象或所选对象的对象数组值,
find
不会返回数组,因此
s2
是一个对象。你可以这样做:

s2.name = '';
但是,如果需要更改所有值(在vanilla js中),则必须交互数组

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

在没有循环的情况下,不可能对一个数组的多个元素(本例中的对象数组)执行操作。作为建议,如果不使用任何库,可以使用javascript for…of循环

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

好啊我在用Foreach。但是在那里使用回调函数。。不是你建议的那样。我要试试这个。。ThanksArrow函数随ES6一起提供。