w460270218 发表于 2022-4-18 15:57

给定一个以数字组成的数组,实现输出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() {
    // 写下你的代码   
}

filterSort(source)
// 输出结果如下
['test2', 'test1', 'test4', 'test7']

ghwanz 发表于 2022-4-18 17:33

    function filterSort(arr) {
            // 写下你的代码
            return arr.filter(item => item.id === +item.id).sort((a,b)=>a.id-b.id).map(item=>item.name);
      }

快乐小风 发表于 2022-4-18 17:41

本帖最后由 快乐小风 于 2022-4-18 17:46 编辑

// 调用示例
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(oriArrData) {
    source.filter(a => {return typeof a == 'object' && a.id != undefined && typeof a.id == 'number';}).sort((a, b) => {return a.id - b.id;}).forEach(cur => {
      console.log(`按照ID排序后结果:id=${cur.id},name=${cur.name}`);
    });
}

filterSort(source)
//输出结果如下
// ['test2', 'test1', 'test4', 'test7']

快乐小风 发表于 2022-4-18 17:53

ghwanz 发表于 2022-4-18 17:33
    function filterSort(arr) {
            // 写下你的代码
          ...

判断数字那里,受教了{:1_893:}

w460270218 发表于 2022-4-18 22:06

function filterSort() {
            // 写下你的代码   思路 先循环判断id是不是数字是的话加入新数组,再判断id大小排序最后取值name
            var arr = []
            var arr2 = []
            for (var i of source) {
                if (typeof i.id === 'number') {
                  arr.push(i)
                }
            }
            arr.sort(function (a, b) {
                return a.id - b.id
            })
            for (var j of arr) {
                console.log(j);
                arr2.push(j.name)
            }
            console.log(arr2);
      }

      filterSort(source)

w460270218 发表于 2022-4-18 22:29

function filterSort() {
            // 写下你的代码   思路 先循环判断id是不是数字是的话加入新数组,再判断id大小排序最后取值name
            console.log(source.filter(item => typeof item.id === 'number').sort(function (a, b) { return a.id - b.id }).map(item => item.name));
      }
页: [1]
查看完整版本: 给定一个以数字组成的数组,实现输出id为数字,并且从小到大排序的name(请使用es6...