我在我的javascript文件中有这段代码:
var items = {
first: 'Item 1',
second: 'Item 2',
third: 'Item 3'
};
var arr = Array.prototype.slice.call(items);
console.log(arr.length);
我想将对象转换为数组。我的问题是,当对象转换为数组时,为什么当对象已经具有属性时,javascript会返回0
?我希望有人可以帮助我,如果有人不介意,我希望不使用jQuery就可以纠正它。
答案 0 :(得分:2)
您可以使用Object.entries()
创建属性数组数组,原始对象的值或反映属性的对象数组,原始对象的值。
Object.entries()
方法返回给定对象自己的数组 可枚举属性[key, value]
对,顺序与此相同 由for...in
循环提供(不同之处在于for-in循环 枚举原型链中的属性。)
var items = {
first: 'Item 1',
second: 'Item 2',
third: 'Item 3'
};
var arr = Object.entries(items);
console.log(arr);
var arr1 = Object.entries(items)
.map((value, index) => {
return {[value.shift()]: value.pop()}
});
console.log(arr1);