gpt4 book ai didi

javascript - 当 Array.prototype.slice.call 不起作用时,如何将具有属性列表的对象转换为数组?

转载 作者:行者123 更新时间:2023-11-30 11:56:15 25 4
gpt4 key购买 nike

这适用于列表:

> 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'],需要访问arrayslicepop等方法

最佳答案

您可以使用键并映射值。

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 处缺少属性

关于javascript - 当 Array.prototype.slice.call 不起作用时,如何将具有属性列表的对象转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37880008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com