掉了几根头发,琢磨出来的一个题
一个以数字组成的数组,实现输出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

当然还有好多解答方式,大家都可以试试哦!
咱们就是说!后台要是返回这样式的数组,咱们就跟他说 "揍嘛呢?!"
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
