如何处理对象数组,使每个元素的props.items属性长度不超过3
错误原因
你写的代码存在两个问题:
- 外层
map遍历得到的每个i是对象类型,没有map方法,内层的i.map()调用直接报错 - 你只返回了截取后的
items数组,丢失了原对象的type、props.latitude等其他属性
正确实现
如果需要保留原数组不被修改,用如下写法生成新数组:
const newArr = arr.map(item => { return { ...item, props: { ...item.props, items: item.props.items.slice(0, 3) } } })
如果不需要保留原数组,可以直接遍历修改原数组,写法更简单:
arr.forEach(item => { item.props.items = item.props.items.slice(0, 3) })
补充说明
slice(0, 3)本身兼容items长度不足3的情况,会直接返回全部原有元素,不需要额外做长度判断。
内容的提问来源于stack exchange,提问作者mouchin777
相关产品推荐
相关产品推荐

