如何更新数组内的 json 对象?

use*_*460 6 javascript json array-map reactjs

我有一个对象数组,我想更新一些内容。我想我可以只映射对象,找到我正在寻找的匹配,然后更新它。

data = data.map(obj => {
   return this.state.objToFind === obj.title;   
   }).map(obj, idx) => {
      console.log("found " + obj.title);     // reads found + undefined?
      obj.menu = this.state.menu;
      obj.title = this.state.title;
      obj.content = this.state.content;
 });
Run Code Online (Sandbox Code Playgroud)

然而,这是行不通的。我找到了该对象,但 obj.anything 未定义。我的 console.log 读取“发现未定义”。

Man*_*val 3

更简单

您可以使用 some 运算符。(它通过迭代数组来工作,当你返回 true 时它会跳出循环)

data.some(function(obj){
   if (obj.title ==== 'some value'){
        //change the value here
        obj.menu = 'new menu';
        obj.title = 'new title';
        return true;    //breaks out of he loop
   }
});
Run Code Online (Sandbox Code Playgroud)