我有这个数组:
var arr=[{Id:'3',Status:True, ObjectId:'23'},
{Id:'4',Status:False, ObjectId:'5'},
{Id:'5',Status:True, ObjectId:'78'},
{Id:'6',Status:False, ObjectId:'54'},
{Id:'7',Status:True, ObjectId:'85'}]
状态为Boolean
类型。
在arr变量中,我需要更改所有属性的内容。
Status
为True
的位置我需要将其设置为固定。
Status
为False
的位置我需要将其设置为已损坏。
这是理想的结果:
var arr=[{Id:'3',Status:Fixed, ObjectId:'23'},
{Id:'4',Status:Damaged, ObjectId:'5'},
{Id:'5',Status:Fixed, ObjectId:'78'},
{Id:'6',Status:Damaged, ObjectId:'54'},
{Id:'7',Status:Fixed, ObjectId:'85'}]
实施它的最佳方法是什么?
答案 0 :(得分:4)
尝试这种方法
使用您在tags
var arr=[{Id:'3',Status:true, ObjectId:'23'},
{Id:'4',Status:false, ObjectId:'5'},
{Id:'5',Status:true, ObjectId:'78'},
{Id:'6',Status:false, ObjectId:'54'},
{Id:'7',Status:true, ObjectId:'85'}]
angular.forEach(arr, function(value, key) {
value.Status = value.Status ? 'Fixed' : 'Damaged';
});
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
或者没有Angular
你可以做
var arr=[{Id:'3',Status:true, ObjectId:'23'},
{Id:'4',Status:false, ObjectId:'5'},
{Id:'5',Status:true, ObjectId:'78'},
{Id:'6',Status:false, ObjectId:'54'},
{Id:'7',Status:true, ObjectId:'85'}]
arr.forEach(item => item.Status = item.Status ? 'Fixed' : 'Damaged');
console.log(arr);
正如评论中提到的,这种方法在IE 8中不起作用
答案 1 :(得分:1)
使用Array.prototype.map(...)
IE8不支持此功能
var arr = [{
"Id": '3',
"Status": true,
"ObjectId": '23'
}, {
"Id": '4',
"Status": false,
"ObjectId": '5'
}, {
"Id": '5',
"Status": true,
"ObjectId": '78'
}, {
"Id": '6',
"Status": false,
"ObjectId": '54'
}, {
"Id": '7',
"Status": true,
"ObjectId": '85'
}];
arr.map(function(item){
item.Status = item.Status ? "Fixed" : "Damage";
});
console.log(arr);
答案 2 :(得分:0)
非ES6:
arr.map(function(item) {
item.Status = item.Status ? 'Fixed' : 'Damaged';
return item;
})