ES6 数组转为对象 ,以及 find 在数组里面找到对应一条数据

今天遇到一个问题。后端请求回来是[{id:'12',name:'tom'},{id:'13',name:'marry'}]。

百度的方法:

转换方法:1、利用fromEntries()和map()函数,语法“Object.fromEntries(arr.map(item => [item.key, item]))”语句;2、利用扩展运算符“...”,语法“{...arr}”。

方法1:利用fromEntries()和map()函数

const arr = [
  { key: "id", name: "编号" },
  { key: "name", name: "名称" },
];

const obj = Object.fromEntries(arr.map(item => [item.key, item]));

console.log(obj);

输出

方法2:利用扩展运算符“...”

const arr = [
  { key: "id", name: "编号" },
  { key: "name", name: "名称" },
];

const obj = {...arr} ;

console.log(obj);

 我用了解构,但是他的姓氏是{0:{key:'id',name:'hhh'}},我不想要前面的0。

所以找了另外的方法:es6里面的find。

find() 方法就是根据传入的函数遍历数组中每一个元素,返回值为数组中第一个符合条件的值。

studnets:

 student:
在这里插入图片描述

 

直接上代码

 //根据id查询student数据,返回符合条件的id
        students.find(function(item){
            return item.id === student.id
        })

结果: 这就是我想要的那一条数据。

注意:

  1. 当数组中某一个条件符合值函数条件时,find将停止执行,即一次只能查询一个数组中符合条件的元素
  2. 如果没有符合条件的元素返回 undefined
  3. find()对于空数组是不会执行的
  4. find()做的仅仅是查询操作,并不会改变数组的原始值

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值