首页 > 解决方案 > 无法打印出 json 中的属性

问题描述

我正在将新属性(对象)动态添加到现有对象中。

这是我的代码:

.then(transactionDetails => {
            console.log(transactionDetails);
            if(transactionDetails != null){
                transactionDetails["nextDueDate"];
                for(var i = 0; i < transactionDetails.length; i++){
                    if(transactionDetails[i].customers_installment_detail.installment1_isPaid === false){
                        nextDueDate = {
                            installment1_dueAmount:transactionDetails[i].customers_installment_detail.installment1_dueAmount,
                            installment1_dueDate:transactionDetails[i].customers_installment_detail.installment1_dueDate
                        }
                    }else if(transactionDetails[i].customers_installment_detail.installment2_isPaid === false){
                        nextDueDate = {
                            installment2_dueAmount:transactionDetails[i].customers_installment_detail.installment2_dueAmount,
                            installment2_dueDate:transactionDetails[i].customers_installment_detail.installment2_dueDate
                        }
                    }else if(transactionDetails[i].customers_installment_detail.installment3_isPaid === false){
                        nextDueDate = {
                            installment3_dueAmount:transactionDetails[i].customers_installment_detail.installment3_dueAmount,
                            installment3_dueDate:transactionDetails[i].customers_installment_detail.installment3_dueDate
                        }
                    }else if(transactionDetails[i].customers_installment_detail.installment4_isPaid === false){
                        nextDueDate = {
                            installment2_dueAmount:transactionDetails[i].customers_installment_detail.installment4_dueAmount,
                            installment2_dueDate:transactionDetails[i].customers_installment_detail.installment4_dueDate
                        }
                    }
                    transactionDetails[i]["nextDueDate"] = nextDueDate;
                }
                res.json({response:transactionDetails});
            }else{
                res.json({response:"No active transaction."});
            }
        })

我正在动态添加nextDueDate. 我可以通过键入在控制台中打印出该值,transactionDetails[0].nextDueDate但是当我尝试将其打印出 JSON 中的整个对象时,nextDueDate它丢失了并且无法打印出来。有什么原因吗?

标签: javascriptnode.js

解决方案


这是由于根据此线程的 Sequelize 问题: Add Property to Object that is returned by Sequelize FindOne

我通过在我的模型中添加一个虚拟列来解决这个问题。

nextDueDate: Sequelize.VIRTUAL

推荐阅读