collection.add()参数为数组时的问题
发布于 6 年前 作者 chao09 17766 次浏览 来自 问答
  • 提供一个最简复现 Demo

page({

    data:{

         _arr:[‘a’,‘b’,c’]

            },

    _ADD:fucntion(){

        db.collection(XXX).add({

            data:{

                        arr: new Array(this.data._arr)//这里有错误?还是我不会用?

                    }

            ************************

    }

})

以上代码:

成功后,在集合里面显示的字段值为:

‘arr’:

    ‘0’:[[‘a’,‘b’,c’]]

不是应该像下面这样才对么:

‘arr’:

    ‘0’:[‘a’]

    ‘1’:[‘b’]

    ‘2’:[‘c’]

注:不想用[{}]的方式,能省点就省点

2 回复

new Array()是用数组的构造函数造一个数组,这个函数的用法之一就是array Array(element1, element2, …),那么你把一个数组作为这个函数的第一个参数,自然就得到了一个只有一个数组element的数组。按你的意思应该这样。

{

...

  data:{

       arr: this.data._arr,

  }

...

}

 new Array(this.data._arr)

你这样子相当于

 let  a=new Array()

a.push(this.data._arr);

所以结果很正常

没毛病

回到顶部