Выдвиньте вложенные значения json в массив, используя узел js - PullRequest
1 голос
/ 18 октября 2019

Мне нужно показать результаты json в формате вложенного массива:

{
    "state": [
        {
            "stateName": "tamilnadu"
        }
    ],
     "city": [
        {
            "cityName": "chennai"
        }
    ]
}

Это мой код. Я новичок в разработке узлов

exports.stateId = function (req, res) {
    state.find(req.body.countryId,  function() {
        var query = N1qlQuery.fromString('SELECT stateId,stateName FROM travel _type='state'');

        myBucket.query(query, async function(err, result) {
            var state=[];
        await result.forEach(ele => {
        var item= {
            stateName:ele.stateName
        }
        if(ele.stateName != undefined)

        state.push(item);
    });

    res.send({state});
 });
 });
};


exports.cityId = function (req, res) {
    city.find(req.body.stateId,  function() {
        var query = N1qlQuery.fromString('SELECT cityId,cityName FROM travel where _type="city"');
        myCluster.query(query, async function(err, result) {
            var city=[];
        await result.forEach(ele => {
        var item= {
            cityName:ele.cityName
        }
        if(ele.cityName != undefined)

        city.push(item);
    });
    res.send({city});
 });
 });
};

В настоящее время я получу результаты, как два разных массива. мне нужно объединить результаты JSON в отдельные вложенные данные

1 Ответ

1 голос
/ 18 октября 2019

Если у вас есть следующие данные:

const data_1 =
{
  "state": [
    { "stateName": "tamilnadu" }
  ]
};
const data_2 =
{
  "city": [
    { "cityName": "chennai" } ]
};

и ваш желаемый объект:

{
    "state": [
        {
            "stateName": "tamilnadu"
        }
    ],
     "city": [
        {
            "cityName": "chennai"
        }
    ]
}

, тогда вы можете использовать Object.assign метод:

let desired = Object.assign({}, data_1, data_2);
console.log(`desired: `, desired)
...