我有一个具有可变属性名称的对象,我将其转换为数组:
var test = Object.getOwnPropertyNames(obj); //[a, b, c]
现在我已经得到了属性名称数组。 我想要采取的下一步是将这个数组转换为一个对象数组,如下所示:
newObj= [ { "name": a }, {"name": b} , {"name" : c }]
我怎样才能实现这一目标?
最佳答案
您可以利用Array.prototype.map
- 它通过对每个项目应用一个函数将序列转换为新数组,该函数包装到具有name
属性的对象在你的情况下:
var names = ["a", "b", "c"];
var newObj = names.map(function(n) { return { name: n }; });
console.log(newObj);
结合您的 getOwnPropertyNames
用法,它可能如下所示:
var newObj = Object.getOwnPropertyNames(obj).map(function(n) { return { name: n }; });
关于javascript - 将数组转换为对象+设置属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38349770/