我有一个对象数组,我想将一个删除对象更改为数组。
我的目标是:
infix operator ∆+ { associativity left precedence 140 }
func ∆+ (left: String, right: String) -> String {
return newAddition(left,second:right)
}
我希望结果像带索引的数组:
[{ABC: "ELEMENT1", MAX: 2, MIN: "Yes"}, {ABC: "ELEMENT2", MAX: 1, MIN: "Yes"}]
答案 0 :(得分:5)
Object.keys()
方法返回给定对象自己的可枚举属性的数组。
map()
方法创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。
var ip = {
STU: "Study1",
SUB: 2,
EXL: "Yes"
};
var op = Object.keys(ip).map(function(key) {
return ip[key];
});
console.log(op);
要迭代Array-of-Objects
var ip = [{
STU: "Study1",
SUB: 2,
EXL: "Yes"
}, {
STU: "Study2",
SUB: 4,
EXL: "No"
}];
var op = ip.map(function(item) {
return Object.keys(item).map(function(key) {
return item[key];
});
});
console.log(op);
答案 1 :(得分:5)
那将是:
var array = Object.keys(obj).map(key => obj[key]);
但是,Object.keys
无法保证顺序,因为它的工作方式类似于for-in
循环,其遍历顺序是任意的。您可能无法按照确切的顺序获得["Study1",2,"Yes"]
。如果您想保证订单,您必须使用包含密钥顺序的数组,并按顺序从对象中提取它们。
var keyArray = ['STU', 'SUB', 'EXL'];
var array = keyArray.map(key => obj[key]);