[英]Object.keys(data).map(v) not giving the actual key value
I want to convert an object into an array of object but my code give the wrong result like shown below..我想将 object 转换为 object 数组,但我的代码给出了错误的结果,如下所示..
// object
data = { user_id : '123' }
// expected result
data = [ { user_id : '123' } ]
// what I get instead
data = [ { v : '123' } ]
my code:我的代码:
let arr = [];
Object.keys(data).map(v => {
console.log(v, data[v]); // here it shows 'user_id' and '123' as it's supposed to
arr.push({ v:data[v] }); // but here it uses the 'v' as property instead of 'user_id'
});
You need to put v
inside a square bracket您需要将
v
放在方括号内
const data = { user_id: '123' } let arr = []; Object.keys(data).map(v => { arr.push({ [v]: data[v] }); }); console.log(arr)
Alternatively you can also use Object.entries
.或者,您也可以使用
Object.entries
。 You dont need initialize let arr = [];
你不需要初始化
let arr = [];
as map
will create a new array因为
map
将创建一个新数组
const data = { user_id: '123' } const arr = Object.entries(data).map(v => { return { [v[0]]: v[1] } }); console.log(arr)
when you need to use variable as key in object, you must use []. object中需要使用变量作为key时,必须使用[]。
Example:例子:
const key = 'user_id'
const obj = {
[key]: 'user'
}
## result
{
'user_id': 'user
}
So change v to [v].因此将 v 更改为 [v]。
let arr = [];
Object.keys(data).map(v => {
arr.push({ [v]:data[v] }); // replace v to [v]
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.