从Object转换的数组(带属性)返回0长度

时间:2017-01-01 04:41:27

标签: javascript arrays object

我在我的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就可以纠正它。

1 个答案:

答案 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);