vue 数据处理问题

image.png

leftData的数据格式
image.png

底下的productName和code不在checklist里面,而是在它的外层,我现在想取到外层的值应该怎么做,感谢各位

阅读 1.7k
1 个回答

前面生成 totalArray 那部分,应该可以用 flatMap简化一下

const totalArray = this.leftData
    .flatMap(item => item.checkList.map(json => JSON.parse(json)));

这样得到的 totalArray 里每个元素不含 item 中的 productNameproductCode。可以在生成元素对象的时候(也就是 JSON.parse 那里)把这两个 数据补进去,用扩展运算符,或者 Object.assign,或者直接给对象赋值都可以

const totalArray = this.leftData
    .flatMap(item => {
        const { productName, productCode } = item;
        return item.checkList.map(json => ({
            ...JSON.parse(json),
            productName,
            productCode,
        }));
    });

后面部分没看太明白,不过现在 totalArray 里每个元素都含 productNameproductCode 这两个属性了。

如果理解没错,后面大概应该可以这样来产生 selectData

注意前面第二段代码已经让 totalArray 的元素拥有了 productNameproductcode
const selectData = totalArray.map(item => ({
    parentId: "",
    productName: item.productName,
    productCode: item.productCode,
    productId: item.parentId,
}));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题