给定一个以数字组成的数组,实现输出id为数字,并且从小到大排序的name(请使用es6语法)
JavaScript
// 调用示例
const source = [
{ 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' },
{},
]
//方法一:
function filterSort(source) {
// 写下你的代码
let arr = []
newValue = source.filter((v, i) => {
return typeof (v.id) == 'number'
})
newValue.sort(function (a, b) {
return a.id - b.id
})
for (v of newValue) {
arr.push(v.name)
}
return arr
}
//方法二:
function filterSort(arr) {
// 写下你的代码
return arr.filter(item => item.id === +item.id).sort((a,b)=>a.id-b.id).map(item=>item.name);
}
filterSort(source)
// 输出结果如下
['test2', 'test1', 'test4', 'test7']