Javascript 删除非数字字段名时将对象转换为数组
如果对象具有此结构,而忽略所有具有非数字字段的字段,是否可以将其转换为数组Javascript 删除非数字字段名时将对象转换为数组,javascript,Javascript,如果对象具有此结构,而忽略所有具有非数字字段的字段,是否可以将其转换为数组 var obj = { 0: 'some', 1: 'thing', 2: 'to convert', ignore: 'this' } 结果应该是: result = ['some', 'thing', 'to convert']; 使用正确的元素顺序。一种更快但更复杂的方法是: var obj = { 0: 'some', 1: 'thing', 2: 'to conv
var obj = {
0: 'some',
1: 'thing',
2: 'to convert',
ignore: 'this'
}
结果应该是:
result = ['some', 'thing', 'to convert'];
使用正确的元素顺序。一种更快但更复杂的方法是:
var obj = {
0: 'some',
1: 'thing',
2: 'to convert',
ignore: 'this'
}, res = [], keys = Object.getOwnPropertyNames(obj);
for(var i = 0; i < keys.length; i++)
if(!isNaN(+keys[i]))
res.push(obj[keys[i]]);
var obj={
0:'一些',
1:‘事情’,
2:'要转换',
忽略:“这”
},res=[],keys=Object.getOwnPropertyNames(obj);
对于(变量i=0;i
一种更快但更复杂的方法是:
var obj = {
0: 'some',
1: 'thing',
2: 'to convert',
ignore: 'this'
}, res = [], keys = Object.getOwnPropertyNames(obj);
for(var i = 0; i < keys.length; i++)
if(!isNaN(+keys[i]))
res.push(obj[keys[i]]);
var obj={
0:'一些',
1:‘事情’,
2:'要转换',
忽略:“这”
},res=[],keys=Object.getOwnPropertyNames(obj);
对于(变量i=0;i
如果它具有length
属性,则可以使用数组。从
:
console.log(Array.from({
0:'一些',
1:‘事情’,
2:'要转换',
长度:3,
忽略:“这”
}));代码>如果它具有长度
属性,则可以使用数组。从:
console.log(Array.from({
0:'一些',
1:‘事情’,
2:'要转换',
长度:3,
忽略:“这”
}));代码>您可以执行以下操作:
var obj={
0:'一些',
1:‘事情’,
2:'要转换',
忽略:“这”
};
var copy={};
Object.keys(obj.forEach)(e=>{
如果(!isNaN(e))复制[e]=obj[e];
});
console.log(Object.values(copy))代码>您可以执行以下操作:
var obj={
0:'一些',
1:‘事情’,
2:'要转换',
忽略:“这”
};
var copy={};
Object.keys(obj.forEach)(e=>{
如果(!isNaN(e))复制[e]=obj[e];
});
console.log(Object.values(copy))代码>是否有length
属性?负键或分数是什么?还是稀疏数组?注意,数字不足以作为数组索引“
,”-0“
,“0”
,“1.2”
,“4294967295”
,“Infinity”
不是数组索引。它是否具有长度
属性?负键或分数是什么?还是稀疏数组?注意,数字不足以作为数组索引<代码>“
,”-0“
,“0”
,“1.2”
,“4294967295”
,“无限”
不是数组索引。isNaN
不是检查数组索引的正确方法。此函数用于检查数组是否为非isNaN
的数字,而不是检查数组索引的正确方法。此函数用于检查数组是否为非下选器(不是我)的数字可能会认为,与其复制所有属性并删除非数字属性,不如只复制所需的属性。@Oriol谢谢您的输入!现在修好了!您的代码有一个小问题:它与ES5不兼容,只有ES6不在所有浏览器中实现。downvoter(不是我)可能认为,与其复制所有属性并删除非数字属性,不如只复制所需的属性。@Oriol感谢您的输入!现在修好了!您的代码有一个小问题:它与ES5不兼容,只有ES6不在所有浏览器中实现。