今天遇到这个错误提示 Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a Symbol.iterator method.
大概意思是 解构非可迭代实例的尝试无效。为了具有可迭代性,非数组对象必须有Symbol.iterator方法。
是因为解构的错误,看了代码中结构的部分,结合业务数据,发现这句过滤 const [dscp] = arr.filter(item => item.name === 'aa'
没有匹配到值,.filter 返回空数组, dscp 是undefined,后面又有const [dscpInt] = dscp
按照预期 dscp 应该是[],undefined没有,数组解构 等号右边必须是数组结构或具有Iterator接口的数据结构,所以由于数据为undefined的原因,解构不成功,在解构出dscp的时候设置默认值为[]
原生具备 Iterator 接口的数据结构: Array、Map、Set、String、函数的 arguments 对象、NodeList 对象