拦截数组后的输出问题

来源:3-11 字符串的扩展(下)

powerful_girl

2021-05-07

老师,您好。针对数组中的输入,只支持 set 为数字类型。然后我想把数组里面 set 成功的数字型都输出,immoc 这个不要输出,因为它是“undefined”。尝试了几种办法:
图片描述

  1. 直接 for 循环遍历,但是无法输出
    图片描述

  2. 在 proxy 里面添加 get,也无法输出
    图片描述

想请问老师为什么无法输出 set 成功的值,正确的解法是什么

写回答

1回答

谢成

2021-05-07

在你这个需求中,如果按照正常的思路,如果传递的不是number类型的值就应该抛出异常。

另外set不管成功还是失败都需要返回boolean的值。


set(target, prop, val) {

    if (typeof val === 'number') {

        target[prop] = val

        return true

    } else {

        throw new TypeError('类型错误')

        return false

    }

}

0
1
powerful_girl
所以不能过滤掉错误,而应该抛出错误异常信息。谢谢老师
2021-05-08
共1条回复

JavaScript ES(6-11)全版本语法 前端都需要的基础课

前端无门槛学习,从ES6到ES11,一套课程掌握JS最新语法

1328 学习 · 296 问题

查看课程