gpt4 book ai didi

javascript - 忽略非标准数组键

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:00 25 4
gpt4 key购买 nike

假设我们有这个:

const v = [1,2,3];
v.foo = 5;

console.log(JSON.stringify(v));

我们会得到:

'[1,2,3]'

数组中的 'foo' 属性将被忽略。但是,如果我们这样做:

console.log(Object.keys(v));

我们会得到:

[ '0', '1', '2', 'foo' ]

我的问题是 - 我们如何才能只从数组中获取标准键,而忽略附加到数组上的任何属性?

我知道如何做到这一点的唯一方法是:

const keys = Object.keys(v).filter(k => Number.isInteger(parseInt(k)));

有没有更好的办法?

最佳答案

你可以使用

Array.from(v.keys())

哪里 keys 返回整数索引(不是属性名称!)的迭代器。请注意,与 Object.keys 相比它忽略了数组的稀疏性并为空洞生成索引。

我想知道为什么你甚至必须使用 Object.keys在一个数组上。数组只有索引,您可以使用简单的 for (let i=0; i<v.length; i++) 生成它们环形。或者甚至使用 something like Array.from({length: v.length}, (_, i) => i) .

关于javascript - 忽略非标准数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53687476/

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