如何将键值对对象转换为ES6中的值数组?

How to convert key-value pair object into an array of values in ES6?

我正在开发一个 React 应用程序,我需要像这样转换键值对象:

{
  0: 'John',
  1: 'Tim',
  2: 'Matt'
};

到仅包含如下值的数组:

['John', 'Tim', 'Matt']

我该如何完成?

const obj = {
  0: 'John',
  1: 'Tim',
  2: 'Matt'
};

const arr = /* ??? */;
const obj = {
  0: 'John',
  1: 'Tim',
  2: 'Matt'
};

const arr = [];
for(let key in obj){
  arr.push(obj[key]);
}

你可以使用 Object.values.

The Object.values() method returns an array of a given object's own enumerable property values, in the same order as that provided by a for...in loop (the difference being that a for-in loop enumerates properties in the prototype chain as well).

var object = { 0: 'John', 1: 'Tim', 2: 'Matt' }, 
    array = Object.values(object);
    
console.log(array);

对于 ES6,您可以使用 Array.from 并对值使用回调。

var object = { 0: 'John', 1: 'Tim', 2: 'Matt' }, 
    array = Array.from(Object.keys(object), k => object[k]);
    
console.log(array);

你可以使用Object.values命令。

根据docs

Object.values() returns an array whose elements are the enumerable property values found on the object. The ordering of the properties is the same as that given by looping over the property values of the object manually

尽管它是一个 ES2017 解决方案,但由于您使用的是 React,因此您可以将 stage-0 作为 babel 的预设并访问此功能

var data ={
  0: 'John',
  1: 'Tim',
  2: 'Matt'
};

var newdata = Object.values(data);
console.log(newdata);

还有其他方法,例如 Object.keys which gives you all the keys as an array and Object.entries 方法 returns 给定对象自身的可枚举数组 属性 [key, value] 对也可能有用给你

虽然您有数字键并且顺序没有间隙,但您可以使用 Object.assign 并将数组作为目标并将给定对象作为源。

var object = { 0: 'John', 1: 'Tim', 2: 'Matt' }, 
    array = Object.assign([], object);
    
console.log(array);

这是常用的:

const obj={
           1:'Azamat',
           2: 'Kanybek',
           3: 'Manas'}

console.log(Object.values(obj))

对于键值对:

const arr = [];

for(let key in obj){
  arr.push([key,obj[key]])
  
}
console.log(arr)