这适用于列表:
> Array.prototype.slice.call([1,2,3])
> [1, 2, 3]
如何根据此类数据{1: "1", 2: "2", 3: "3"}
创建列表?除了使用for
迭代对象之外还有其他方法吗?
Array.prototype.slice.call()
无效,并提供[]
这来自data = Object {0: Object, 1: Object, 2: Object, total : '29'}
,然后是delete data['total']
,需要访问slice
,pop
以及Array
的其他方法
答案 0 :(得分:2)
您可以使用键并映射值。
var o = {1: "1", 2: "2", 3: "3"},
a = Object.keys(o).map(function (k) {
return o[k];
});
console.log(a);
console.log(Array.prototype.slice.call({1: "1", 2: "2", 3: "3", length:5}));

出现了问题,为什么Array.prototype.slice.call
不起作用。基本上是因为缺少长度属性。
仅使用可用作索引的属性。
var o1 = {1: "1", 2: "2", 3: "3"},
o2 = {1: "1", 2: "2", 3: "3", length: 5},
o3 = {1: "1", 2: "2", 3: "3", abc: 42, length: 5},
o4 = {0: "0", 1: "1", 2: "2", 3: "3"};
o4.length=Object.keys(o4).length;
console.log(Array.prototype.slice.call(o1));
console.log(Array.prototype.slice.call(o2));
console.log(Array.prototype.slice.call(o3));
console.log(Array.prototype.slice.call(o4));

注意:可以使用properties-in-object
分配Object.keys(OBJECT)
的动态长度。在控制台中获取undefined
的原因是缺少索引0
的属性
答案 1 :(得分:1)
var list = [];
for (item in obj) {
list.push(obj[item]);
}
//use list.push(parseInt(obj[item])) for number array
如果您想直接
,也可以执行以下操作Object.values(obj);