前端外包笔试环节

1 用数组的filter等方法对以下数据做处理,对数组array做去重,过滤,排序,最后输出结果 ‘259’

const array = [
    { value: 9 },
    { value: 2 },
    { value: 3 },
    { value: 5 },
    { value: 2 },
    { value: 5 }
];
function tran(arr){
}
tran(array) //输出‘259’

解法:

 function tran(arr) {
        let result = [];
        arr.forEach(item => {
            if (result.indexOf(item.value) == -1) {
                result.push(item.value)
            }
        })
        result = result.filter(item => {
            return item !== 3
        })
        result = result.sort().join('')
        console.log(result);
    }

2.把一串数据转换成指定格式

//2. 写一个方法把下面的data数组转化为指定格式的数据。
var data = [
  {
    parentId:0,id:1,value:'test1',
  },
  {
    parentId:3,id:2,value:'test2',
  },
  {
    parentId:0,id:3,value:'test3',
  },
  {
    parentId:1,id:4,value:'test4',
  },
  {
    parentId:1,id:5,value:'test5'
  }
]
//转化为
let tree=[
  {
    id:1,
    value:'test1',
    children:[
      {
        id:4,
        value:'test4'
      },
      {
        id:5,
        value:'test5'
      }
    ]
  },
  {
    id:3,
    value:'test3',
    children:[
      {
        id:2,
        value:'test2'
      }
    ]
  }
]

function tran(arr){
  
}

tran(data) //输出tree结构的数据

解法

function table(data){
    let num = 0;
    let arr = [];
    data.forEach(item => {
        if (item.parentId == 0) {
            arr.push({ children: [], id: item.id, value: item.value, })
            data.forEach(smallItem => {
                if (smallItem.parentId == item.id) {
                    // console.log(num)
                    arr[num].children.push({ id: smallItem.id, value: smallItem.value, })
                }

            })
            num++
        }
    })
    return arr
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值