Bar*_*yle 2 javascript arrays object keyvaluepair ecmascript-6
我正在开发一个React应用程序,我需要转换这样的键值对象:
{
0: 'John',
1: 'Tim',
2: 'Matt'
};
Run Code Online (Sandbox Code Playgroud)
对于像这样的值的数组:
['John', 'Tim', 'Matt']
Run Code Online (Sandbox Code Playgroud)
我该如何做到这一点?
const obj = {
0: 'John',
1: 'Tim',
2: 'Matt'
};
const arr = /* ??? */;
Run Code Online (Sandbox Code Playgroud)
您可以使用Object.values命令。
根据文档。
Object.values()返回一个数组,其元素是在对象上找到的可枚举属性值。属性的顺序与通过手动循环对象的属性值给出的顺序相同
虽然这是一个ES2017解决方案,但由于您使用的是 react,您可以将其stage-0作为预设包含babel并访问此功能
var data ={
0: 'John',
1: 'Tim',
2: 'Matt'
};
var newdata = Object.values(data);
console.log(newdata);Run Code Online (Sandbox Code Playgroud)
还有其他方法,例如Object.keys将所有键作为数组提供,Object.entries方法返回给定对象自己的可枚举属性[key, value]对的数组,这也可能对您有用
你可以用Object.values.
该
Object.values()方法返回给定对象自己的可枚举属性值的数组,其顺序与for...in循环提供的顺序相同(不同之处在于for-in循环也枚举原型链中的属性).
var object = { 0: 'John', 1: 'Tim', 2: 'Matt' },
array = Object.values(object);
console.log(array);Run Code Online (Sandbox Code Playgroud)
使用ES6,您可以使用Array.from并使用值的回调.
var object = { 0: 'John', 1: 'Tim', 2: 'Matt' },
array = Array.from(Object.keys(object), k => object[k]);
console.log(array);Run Code Online (Sandbox Code Playgroud)