掉了几根头发,琢磨出来的一个题

一个以数字组成的数组,实现输出id为数字,并且从大到小排序name(要求使用es6语法)!!!

代码:

const  source = [
        null,
        { id: 4, name: 'test1' },
        { id: {}, name: 'ssdf' },
        "test",
        { id: () => {}, name: 'sf' },
        { id: '6', name: 'test3' },
        { id: 6, name: 'test4' },
        { id: 7, name: 'test7' },
        { id: 2, name: 'test2' },
        { name: 'sf' },
        {},
        () => {}
]

要求最后得到结果为:['test2','test1','test4','test7']

解答:

//1、首先需要将数据中的无用数据( null,test,()=> )过滤掉
var filter1 = source.filter((item,index) => typeof(item) == 'object' && item !== null && item)
console.log(filter1) //得到的数据如下图1
//2、接下来筛选出数组数据中id值为 number 类型的
var filter2=filter1.filter((item,index)=> typeof(item.id)=='number')
console.log(filter2) //得到的数据如下图2
//3、得到有效数据之后,我们根据id大小来进行排序
var sortArr=filter2.sort((a,b) => a.id- b.id)
console.log(sortArr) //得到的数据如下图3
//4、最后获取数据中的name
sortArr=sortArr.map(item=>{
	return item.name
})
console.log(sortArr) //得到 ['test2','test1','test4','test7']
  • 图1
    在这里插入图片描述

  • 图2
    在这里插入图片描述

  • 图3
    在这里插入图片描述

当然还有好多解答方式,大家都可以试试哦!

咱们就是说!后台要是返回这样式的数组,咱们就跟他说 "揍嘛呢?!"

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值