如何在javascript es 6或react js中更改特定索引的值?



我有一个像这样的数组

const data = [
{ id: 1, desc: 'desc 1' }, 
{ id: 2, desc: 'desc 2' }
]

和这样的select数组

const listSelect = [
{ id: 10, title: ''title 1},
{ id: 20, title: 'title 2'}
]

我想根据索引数据更改listSelect,例如,如何做?

如果您只是想在共享索引上合并,那么一个相当简单的函数将以不可变的方式完成此操作:

const mergeByIndex = (xs, ys) =>
xs .map ((x, i) => ({...x, ...ys[i]}))
const listSelect = [{id: 10, title: 'title 1'}, { id: 20, title: 'title 2'}]
const data = [{id: 1, desc: 'desc 1'}, {id: 2, desc: 'desc 2'}]
console .log (mergeByIndex (listSelect, data)) //=>
// [
//   {id: 1, title: "title 1", desc: "desc 1"},
//   {id: 2, title: "title 2", desc :"desc 2"}
// ]
console .log (mergeByIndex (data, listSelect)) //=>
// [
//   {id: 10, desc: "desc 1", title: "title 1"},
//   {id: 20, desc: "desc 2", title: "title 2"}
// ]
.as-console-wrapper {max-height: 100% !important; top: 0}

我们简单地对一个列表进行map,并对该项和另一个列表中相同索引处的项进行浅合并。

注意,传递这些属性的顺序将决定选择哪个版本的公共属性。第二个项的属性将覆盖第一个项的同名属性。

如果这不是你的意思,使用共享索引,请更完整地解释你将如何选择匹配。

相关内容

最新更新