JS这道题怎么做?

3131975015
  • 516

实现下面的转换,对象的属性和数量未知

{firstName: 'TOM'} = [{name: 'firstName',value: 'TOM'}]
回复
阅读 1.6k
4 个回答
Object.fromEntries([{name: 'firstName',value: 'TOM'}].map(({name,value})=>[name,value]))

//{firstName: 'TOM'}
Object.entries({firstName: 'TOM'}).map(([name,value])=>({name,value}))
//[{name: 'firstName', value: 'TOM'}]

es5

var obj = {firstName: 'TOM'};
var arr =[];
for(prop in obj){
  var o ={name:prop,value:obj[prop]}
  arr.push(o);
}
console.log(arr);
var arr = [{name: 'firstName', value: 'TOM'}];
var obj ={};
for(index in arr){
   obj[arr[index].name] = arr[index].value;
}
console.log(obj);
const obj = {firstName: 'TOM'}
Object.keys(obj).map(item => {
    return {
        name: item,
        value: obj[item]
    }
})

有一些方法可用:

  1. Object.entries()Object.fromEntries(),查查就知道怎么用
  2. 遍历数组(右边的)可以用 for 语句。但不管是数组还是对象,都可以用 for ... in,注意用 for ... in 遍历的是 Key,也就是属性名或者数组下标;。for ... of 遍历的是属性值或者数组元素。

关键问题解决了,剩下的就自己解决了吧。

最简单的解决方法:

Object.keys(obj).map((item) => ({name: item, value: obj[item]}))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏