首页 > 解决方案 > 作为两个单独的数组推送并合并为一个

问题描述

我正在遍历一组对象并选择一些特定的对象,然后将它们推送到一个新数组。但是,当我尝试打印该新数组时,它会打印我选择的多个对象数组!我应该如何以某种方式将这些多个数组合并为一个数组并将它们作为一个对象数组打印出来?

这是我的代码:

async getRestaurants() {
    if (this.state.city !== '') {
        firebase.firestore().collection('restaurants').get().then(querySnapshot => {
            const data = querySnapshot.docs.map(doc => doc.data());

            for (i = 0; i < data.length; i++) {
                if (data[i].rest_location == this.state.city) {

                    var newArr = [];
                    newArr.push(data[i]);
                    console.log("Selected city data:", newArr) 
                }
            }
        })
    }
}

这是它打印出来的内容:

 ▶︎ 'Selected city data:', [ { rest_location: 'Gjakove',
                         │ rest_phone: 123456789,
                         │ rest_name: 'Jeta',
                         └ res_id: 'jeta1' } ]

 ▶︎ 'Selected city data:', [ { rest_location: 'Gjakove',
                         │ rest_phone: 12345678,
                         │ rest_name: 'Potoku',
                         └ res_id: 'Potoku1' } ]

如您所见,有两个不同的数组一一打印。为什么会发生这种情况以及该怎么办?

标签: javascriptarraysreact-nativewhile-loopjavascript-objects

解决方案


推荐阅读