我有以下对象:
formData : { _id: "550de8956e2d0948080e220f" category: "Tag1" isFeatured: "Yes" likeCount: 557 title: "Integrating WordPress with Your Website" }
我尝试了JavaScript,但它返回了一个空值:
var arryFormData = Array.prototype.slice.call(formData)
如何将formData转换为仅包含其值的数组,而不是属性?
如......
arryFormData = ["550de8956e2d0948080e220f", "Tag1", "Yes", 557, "Integrating WordPress with Your Website"]
答案 0 :(得分:5)
或者如果你想要更多功能代码:
var arr = [];
angular.forEach(obj, function(value, key){
arr.push(value);
});
答案 1 :(得分:3)
如果您使用的是underscore.js,
_.values(formData)
// will get ["550de8956e2d0948080e220f", "Tag1", "Yes", 557, "Integrating WordPress with Your Website"]
请参阅:here
可替换地:
var res = [];
for (var x in formData){
formData.hasOwnProperty(x) && res.push(formData[x])
}
console.log(res);
无论如何,数组元素可能不是您想要的顺序。
答案 2 :(得分:1)
我认为没有神奇的方法,你只需要使用for循环:
for (var key in obj) {
values.push(obj[key])
}
要使角度变大,你可以使用angular.forEach我猜......
答案 3 :(得分:1)
我更喜欢使用Object.keys()和es6语法的一行解决方案,直到Object.values()不在此
const values = Object.keys(obj).map(it => obj[it])
或在es5
var values = Object.keys(obj).map(function(it) {
return obj[it]
})
答案 4 :(得分:0)
这是我在Angular 5中处理将Object转换为Array的方式,因为API在JSON Object中提供响应,因此我们可以将其转换为数组以使用它。
let tmepArr = {};
Object.keys(res).forEach( key => {
tmepArr['name'] = [res[key].name];
tmepArr['id'] = [res[key].id];
});
this.marketplaceDropDown = [tmepArr];