javascript 为什么lodash联合方法不采取单一元素数组?

ltskdhd1  于 2023-06-20  发布在  Java
关注(0)|答案(1)|浏览(110)

我尝试使用lodash _.union方法更新Postgres DB中的空数组。当我用一个元素更新数组时,数组仍然是空的,如果我传递2个或更多的元素,它就工作了,为什么?以及如何将单个元素插入空数组。
如何定义产品模型

variation: {
    type: DataTypes.ARRAY(DataTypes.STRING),
    defaultValue: [],
    allowNull: true,
  },

联合法

const id = req.params.id;
    const { variation } = req.body;

    const isVariation = await products.findOne({
      where: { product_id: id },
    });
    

    const variationArray = isVariation.variation;
    let newlist = _.union(variationArray, variation);

    await products.update(
      { variation: newlist},
      { where: { product_id: id } }
    );

如果我测试这段代码,它会工作,但上面的代码不工作,为什么?

let arr = [];
    let ok = _.union(arr, ["1"])
    console.log(ok);
unftdfkk

unftdfkk1#

为了向空数组中插入单个元素,我使用了一个条件语句来单独处理这种情况。

const variationArray = isVariation.variation;
    let newlist;
    if (variationArray.length === 0) {
      newlist = [variation];
    } else {
      newlist = _.union(variationArray, variation);
    }

相关问题