[英]How to remove all element from array except the first one in javascript
[英]How to change all array while updating one element in javascript?
我需要在数组中始终只有一个元素为true
。
假设我有一个数组
let data = [
{ letter: "a", id: 1, bool: false },
{ letter: "b", id: 2, bool: false },
{ letter: "c", id: 3, bool: false},
{ letter: "d", id: 4, bool: false },
];
每次我单击一个元素时,我都需要将其更改为true
而所有其他元素都更改为false
。 我有一个 function
const updatedArray = data.map((item) => {
if (item.id === id) {
return {
...item,
bool: true,
};
}
return item;
});
但它可以作为点击元素的切换。
您的问题在这里: return item;
,您实际上是在返回先前的值,并且只是更新与id
变量具有相同 id 的 item 的bool
属性,但是您需要切换所有项目的bool
属性,您可以像这样实现您的目标:
const updatedArray = array.map((item) => ({...item, bool: item.id === id}));
如果它不是选定的项目,您还需要将项目的bool
设置为 false,而不仅仅是将选定项目的bool
设置为 true。 这应该有效:
const id = 3 (clicked item)
const updatedArray = array.map(item => {
if (item.id === id) {
return {
...item,
bool: true
};
}
return {
...item,
bool: false
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.