相关文章推荐
绅士的炒饭  ·  app.UseAuthentication( ...·  4 周前    · 
重感情的生姜  ·  .net - C# Process ...·  1 年前    · 

项目里面很多地方我们需要把数据处理一下才能应用,包括我们拿到的是一个对象的数组,但是我们需要根据数组中对象的某个属性来获取对象的另一个属性,这个时候就需要先把数组转成对象,然后根据对象[属性]来获取我们需要的值,js数组转有几种方法,归纳整理一下~

js对象转数组

方法一:Object.fromEntries()

Object.fromEntries() 用于js数组转对象

const arr = [  { name: "xiaoming", sex: "man" },  { name: "xiaohong", sex: "woman" },];
const obj = Object.fromEntries(arr.map(item => [item.name, item]));
console.log(obj); 
//    xiaoming: { name: "xiaoming", sex: "man"  },
//    xiaohong: { name: "xiaohong", sex: "woman" }

方法二:map循环方式

const arr = [  { name: "xiaoming", sex: "man" },  { name: "xiaohong", sex: "woman" },];
let obj={};
arr.map((ele, index) => {
    obj[ele.name] = ele
console.log(obj)
//    xiaoming: { name: "xiaoming", sex: "man"  },
//    xiaohong: { name: "xiaohong", sex: "woman" }

方法三:for in 循环方式

const arr = [  { name: "xiaoming", sex: "man" },  { name: "xiaohong", sex: "woman" },];
let obj={};
for (var item in arr){
  obj[arr[item].name] = arr[item];
console.log(obj)
//    xiaoming: { name: "xiaoming", sex: "man"  },
//    xiaohong: { name: "xiaohong", sex: "woman" }

除了单独的方法Object.fromEntries(),我们可以把数组转成对象,
我们还可以用这种思路:
1.遍历数组,拿到数组中的每一项,有很多种遍历数组的方法,哪个熟悉用哪个,上述讲了两种(for in,map),还有很多..
2.然后创建一个空对象(let obj = {})
3.让数组中每一个对象的一个key作为新对象的,数组中的每一个对象作为key的value,(obj[ele.name] = ele)
这样的话我们就实现了我们的目的,数组转对象,大家可以尝试一下~

分类:
前端