Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除非数字字段名时将对象转换为数组_Javascript - Fatal编程技术网

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不在所有浏览器中实现。