首页 > 解决方案 > 试图从对象数组中删除键

问题描述

我有一个带有一组对象的 Javascript 数组,我正在尝试删除该数组中每个对象的键(即 0 和 1),但是我正在努力寻找一个 Javascript 函数诡计。

[{
    '0': {
      id: '630640',
      stuff: 'name1',
      anotherProp: 'prop1'
    },
    '1': {
      id: '630640',
      stuff: 'name2',
      anotherProp: 'prop2'
    },
    id: '630640'
  },
  {
    '0': {
      id: '694969',
      stuff: 'name3',
      anotherProp: 'prop3'
    },
    id: '694969'
  },
  undefined
]

我尝试了以下方法,但它没有删除密钥。

var keys = Object.keys(input),
  output = [];
for (var i = 0, length = keys.length; i < length; ++i)
  output.push(input[keys[i]]);
  
console.log(output);

标签: javascriptarraysobject

解决方案


您可以先从数组中过滤掉所有非空值,然后用于Object.values获取每个对象的值

let input = [{
	'0': {
		id: '630640',
		stuff: 'name1',
		anotherProp: 'prop1'
	},
	'1': {
		id: '630640',
		stuff: 'name2',
		anotherProp: 'prop2'
	},
	id: '630640'
},
{
	'0': {
		id: '694969',
		stuff: 'name3',
		anotherProp: 'prop3'
	},
	id: '694969'
},
undefined
];

let output = input.filter(nonNull => nonNull).map(obj => Object.values(obj));
console.log(output)


推荐阅读