vue 数据处理问题

image.png

leftData的数据格式
image.png

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

阅读 1.8k
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,
}));
推荐问题