gpt4 book ai didi

javascript - 如何在对象数组中查找和编辑对象的属性?

转载 作者:行者123 更新时间:2023-11-30 12:09:38 27 4
gpt4 key购买 nike

我有一个对象数组,我想在某些对象中找到属性“plane: true”并将其设置为 false。它只是添加到与对象相同区域的数组中。我尝试使用 angular forEach() 的功能,但没有任何反应。请帮忙。

this.typeTransport = [
{
currentTransport: 'plane',
changeTransport: 'plane_disable',
plane: true
},
{
currentTransport: 'train',
changeTransport: 'train_disable',
train: true
},
{
currentTransport: 'bus',
changeTransport: 'bus_disable',
bus: true
},
{
currentTransport: 'ship',
changeTransport: 'ship_disable',
ship: true
}
];

angular.forEach(this.typeTransport, function(value, key){
angular.forEach(value, function(value, key){
if(key === 'plane'){
this.typeTransport[key] == false ? this.typeTransport[key] = true : this.typeTransport[key] = false;
console.log(this.typeTransport);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

最佳答案

问题是 typeTransport 是一个数组,'plane' 不是它的属性,里面的对象有属性 'plane'

将内部 forEach 重命名为 value1,key1

 angular.forEach(this.typeTransport, function(value, key) {
angular.forEach(value, function(value1, key1) {

if (key1 === 'plane') {
this.typeTransport[key][key1] = false;
}
});
});

根据您的条件,如果为 true,则设置为 false,上面的条件适用。如果你需要让 true=>false & false=>true,那么下面的条件

 this.typeTransport[key][key1] = !this.typeTransport[key][key1];

关于javascript - 如何在对象数组中查找和编辑对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34182538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com