Javascript 如何使用数组过滤器在数组中的对象中查找值的值,然后更改/编辑该值?

Javascript 如何使用数组过滤器在数组中的对象中查找值的值,然后更改/编辑该值?,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,假设我有这样的东西: this.state = { todos: [{id:0, text:this.state.text, isEdit: this.state.isEdit, priority: this.state.priority}, {id:1, text:this.state.text, isEdit: this.state.isEdit, priority: this.state.priority}, {id:2, text:this.state.text, isEdit: thi

假设我有这样的东西:

this.state = {
todos: [{id:0, text:this.state.text, isEdit: this.state.isEdit, priority: this.state.priority}, {id:1, text:this.state.text, isEdit: this.state.isEdit, priority: this.state.priority}, {id:2, text:this.state.text, isEdit: this.state.isEdit, priority: this.state.priority}]
};
我有一个等于2的var,如下所示:
var=2

如何在函数中使用类似于“Array filter()”(在这种情况下打开更简单的数组方法实现)的变量,以便在
todos:
数组中“提取”包含上述示例中id值的整个对象,这是与我的var相同的值(
id:2
,在本例中),然后修改/编辑该特定对象的
文本:
值(在本例中为this.state.text),同时确保该对象作为一个整体保留在与之前相同的位置?(这可以由id/var的值引用,因为它与我的索引方式相对应)

换句话说,我如何编辑对象的文本值,该对象的id与我的var值相同


我被告知,这将是可能的阵列滤波器方法,但我有一个困难的时间看到这是如何可能的。我也是一个笨蛋,所以。。。但我真的很珍惜这个学习机会!提前感谢。

您不需要该函数,而是使用该函数根据执行条件的测试函数查找对象

函数返回

数组中满足所提供测试功能的第一个元素的;否则,将返回

let state={todos:[{id:0,text:text,isEdit:true,priority:3},{id:1,text:text1,isEdit:false,priority:3},{id:2,text:text2,isEdit:true,priority:2},
id=2,
found=state.todos.find(o=>o.id==id);
if(found)found.text=“NewText2”;
console.log(状态)

.as console wrapper{max height:100%!important;top:0;}
.filter
是个坏主意,请改用
.find
,因为您只需要一个对象,而不需要数组。你自己试过什么了吗?好的,很高兴知道,我已经引用过了,但是我不知道如何在键/值对中定位数字的值。比如如果有一个数字数组,我可以看到我是如何找到它的,但是当数组像我描述的那样更复杂时会发生什么呢?太棒了!我不知道当你通过id指定时它会返回整个对象。非常感谢@Ele!