数组变换-map,filter,reduce练习题

1.转换星期

let arr = [0,1,2,2,3,3,3,4,4,4,4,6]
let arr2 = arr.map(补全代码)
console.log(arr2) // [‘周日’, ‘周一’, ‘周二’, ‘周二’, ‘周三’, ‘周三’, ‘周三’, ‘周四’, ‘周四’, ‘周四’, ‘周四’,‘周六’]

代码:

let arr2 = arr.map(item => {
    const hash = { 0: '周日', 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六', }
    return hash[item];
})

2.筛选分数

let scores = [95,91,59,55,42,82,72,85,67,66,55,91]
let scores2 =
scores.filter(补全代码) console.log(scores2) // [95,91,82,72,85,67,66,91]

代码:

let scores2 = scores.filter(item => item > 60)

3.求奇数之和

let scores = [95,91,59,55,42,82,72,85,67,66,55,91]
let sum =scores.reduce((sum, n)=>{ 补全代码 },0)
console.log(sum) // 奇数之和:598

代码:

let sum = scores.reduce((sum, n) => {
    if (n % 2 != 0) {
        sum += n;
    } return sum;
}, 0)

4.面试题

将数组

let arr = [
            { 名称: '动物', id: 1, parent: null },
            { 名称: '狗', id: 2, parent: 1},
            { 名称: '猫', id: 3, parent: 1}
        ]

变换为对象

        {
            id: 1, 名称: '动物', children: [
                { id: 2, 名称: '狗', children: null },
                { id: 3, 名称: '猫', children: null },
            ]
        }

代码:

        arr.reduce((result, item) => {
            if (item.parent === null) {
                result.id = item.id;
                result.名称 = item.名称
            } else {
                result.children.push(item);
                delete item.parent;
                item.children = null;
            }
            return result;
        }, { id: null, children: [] })
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值