如何使用sequelize将空数组转换为空JSON对象?

时间:2019-07-29 20:22:32

标签: javascript node.js sequelize.js

我正在使用sequelize创建服务,并且某些值的响应为空数组。我需要将这些空数组转换为JSON对象。

有什么方法可以通过续集将空数组转换为空JSON对象吗?

我已经尝试过

track = _.last(result.tracks[0].track) ? _.last(result.tracks[0].track) : {};

但是没有用。

if (result.tracks && result.tracks[0] && result.tracks[0].track) {
    track = _.last(result.tracks[0].track) ?
         _.last(result.tracks[0].track) : {};

    track.status = result.tracks[0].status;
}

我希望数组变成{}

我该如何解决问题?

2 个答案:

答案 0 :(得分:0)

我会给你一个有效的答案,但不能解释 falsy 空数组的行为。

track = !_.last(result.tracks[0].track).length ? _.last(result.tracks[0].track) : {};

数字零表现虚假

答案 1 :(得分:0)

我看到您需要删除其他属性为空。

if (result.tracks && result.tracks[0] && result.tracks[0].track) {
    track = _.last(result.tracks[0].track) ?
         _.last(result.tracks[0].track) : {};
    track.status = result.tracks[0].status;
}

但是,请注意,在这里,您已经通过运行“ track = ...”创建了一个新项目。 并且它不影响原始对象“ result.tracks [0] .track”中的数组。 所以,我建议您尝试一下。

if (result.tracks && result.tracks[0] && result.tracks[0].track) {
    track = _.last(result.tracks[0].track) ?
         _.last(result.tracks[0].track) : {};
    track.status = result.tracks[0].status;
    result.tracks[0].track = track;
}