我是一个React应用程序的开发者,需要将一个键值对对象转换成如下格式:
{
0: 'John',
1: 'Tim',
2: 'Matt'
};
将其转换为仅包含值的数组,如下所示:
['John', 'Tim', 'Matt']
我该如何完成这个任务?
const obj = {
0: 'John',
1: 'Tim',
2: 'Matt'
};
const arr = /* ??? */;
我是一个React应用程序的开发者,需要将一个键值对对象转换成如下格式:
{
0: 'John',
1: 'Tim',
2: 'Matt'
};
['John', 'Tim', 'Matt']
const obj = {
0: 'John',
1: 'Tim',
2: 'Matt'
};
const arr = /* ??? */;
Object.values
方法。
Object.values()
方法返回一个给定对象自己的所有可枚举属性值的数组,与通过for...in
循环提供的顺序相同(区别在于 for-in 循环也会枚举原型链上的属性)。
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
在 ES6 中不包含,它是在 ES7 中引入的。他想要一个在 ES6 中可用的替代方案。 - user6576367Object.values
命令。尽管这是一个
Object.values()
返回一个数组,其元素是在对象上找到的可枚举属性值。属性的顺序与手动循环对象的属性值所给出的顺序相同。
ES2017
解决方案,但由于您正在使用React,因此可以将stage-0
作为babel
的预设并访问此功能。
var data ={
0: 'John',
1: 'Tim',
2: 'Matt'
};
var newdata = Object.values(data);
console.log(newdata);
除了像Object.keys
这样的方法可以将所有键作为数组给出,Object.entries
方法返回给定对象自己枚举属性[key, value]
对的数组,这也可能对您有用。
const
也是如此。至于对象方法,有填充程序! - Estus Flaskconst obj = {
0: 'John',
1: 'Tim',
2: 'Matt'
};
const arr = [];
for(let key in obj){
arr.push(obj[key]);
}
如果您有数字键并且按顺序排列而且没有间隙,您可以使用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)