js修改对象数组中某个name值为1或2的项的user值为0
时间: 2024-12-23 07:16:46 浏览: 0
js 定义对象数组(结合)多维数组方法
在JavaScript中,你可以通过循环遍历数组并检查每个对象的属性来实现这个功能。假设我们有一个对象数组,其中某些对象的`name`属性可能是"1"或"2",我们可以创建一个新的数组,只改变这些特定名字对应的`user`值。
这里是一个示例代码:
```javascript
var top_ = {
'index': '首页',
'user': '用户',
'tree': '模块树'
};
var all_list = [
{
index: [{'name': '网站栏目'}, {'name': '1'}],
user: '张三',
tree: []
},
// 其他对象...
];
// 创建一个新数组来保存修改后的对象
var modifiedList = [];
// 遍历all_list
for (var i = 0; i < all_list.length; i++) {
// 检查对象的index部分是否有name为1或2的元素
if (all_list[i].index.some(item => item.name === '1' || item.name === '2')) {
// 如果有,复制当前对象并更新user值
var newObj = JSON.parse(JSON.stringify(all_list[i])); // 创建浅拷贝防止直接修改原数组
newObj.user = 0;
modifiedList.push(newObj);
} else {
// 如果没有,直接添加原对象
modifiedList.push(all_list[i]);
}
}
console.log(modifiedList); // 打印修改后的数组
```
在这个例子中,我们使用`some()`方法检查`index`内的元素是否存在匹配的名字,如果有,就创建一个新的对象并将`user`值设为0,然后将新对象添加到`modifiedList`中。如果不存在匹配的名字,则保留原对象不变。
阅读全文