将数组中的变量,拿出来生成一个对象?

问题描述

**js 替换,将

数组他替换成对象
 [
   {
     name: "aaa"
     sqlVal: 134
   },
   {
     name: "vvv"
     sqlVal: 567
   }
 ]
 {
   aaa: 134,
   vvv:567
 }

如何替换?

**

问题出现的环境背景及自己尝试过哪些方法

相关代码

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 2.3k
6 个回答
const toObject = (items, keyField, valueField) => 
    Object.fromEntries(items.map(item => [item[keyField], item[valueField]]));

// toObject([{name: 'aaa', sqlVal: 134}], 'name', 'sqlVal');
let array = [
  {
    name: "aaa",
     sqlVal: 134
  },
  {
    name: "vvv",
     sqlVal: 567
  }
]

let map = new Map()
array.forEach(item => {
  map.set(item.name, item.sqlVal)
})

let obj = Object.fromEntries(map)

console.log(obj)
var arr = [
   {
     name: "aaa",
     sqlVal: 134
   },
   {
     name: "vvv",
     sqlVal: 567
   }
 ]
function getObj(arr) {
    var obj = {}
    arr.forEach(item => {
        obj[item.name] = item.sqlVal
    })
    return obj
}
console.log(getObj(arr))
新手上路,请多包涵
const arr = [
  { name: "aaa", sqlVal: 134 },
  { name: "vvv", sqlVal: 567 }
];

const obj = arr.reduce((acc, curr) => {
  acc[curr.name] = curr.sqlVal;
  return acc;
}, {});

console.log(obj); // { aaa: 134, vvv: 567 }

首先,我们定义一个空对象作为reduce()方法的初始值。然后,使用reduce()方法遍历数组中的每个元素,并将每个元素的name属性作为对象的键,将sqlVal属性作为对象的值,最终返回一个新的对象。

const arr =  [
  { name: "aaa", sqlVal: 134 },
  { name: "vvv", sqlVal: 567 }
]

const result = arr.reduce((prev, curr) => {
  prev[curr.name] = curr.sqlVal
  return prev
}, {})
console.log(result);
const arr = [
    { name: "aaa", sqlVal: 134 },
    { name: "vvv", sqlVal: 567 }
];

const obj = Object.fromEntries(arr.map(({ name, sqlVal }) => [name, sqlVal]));
console.log(obj);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题