如何将JavaScript数组转换为元素

时间:2017-03-15 06:22:13

标签: javascript arrays string

我有Array

var fieldsToFetch = ['name', 'class', 'rollNumber'];

我正在将这个数组用于NODE-ORM2查询,简单来说,我正在向ORM说这是我想要获取的字段。

Person.find({ surname: "Doe" }).limit(3).offset(2).only("name", "class", "rollNumber").run(function (err, people) {
    // returning only 'name', 'rollNumber' and 'class' properties
    //this is working fine
});

在此代码中,您可以看到带有字段名称的.only()函数。如果我通过逗号分隔在这里传递名称,那么它工作正常,但如果我喜欢这个

Person.find({ surname: "Doe" }).limit(3).offset(2).only(fieldsToFetch).run(function (err, people) {
    // returning only 'name', 'class' and 'rollNumber' properties
    // not working 

});

我也试过

String(fieldsToFetch );fieldsToFetch .toString();但它将整个数组转换为单个字符串。那么我怎么能在这里使用这个数组作为参数呢?

三江源。

修改

传递2或3个参数不是一个挑战,主要目标是将所有数组元素作为单个元素。

2 个答案:

答案 0 :(得分:1)

因为您传递了一个数组,但它需要单独的字符串,所以如果您使用ES6,则可以像.only(...fieldsToFetch)一样传递。 这称为spread operator。它获取数组,将其拆分为项目并将它们作为单独的参数传递。

实施例



function f(a,b,c){
  console.log(a);
  console.log(b);
  console.log(c);
}

var args = [1,2,3];

f(...args);




我使用spread operator传递数组,并将数组拆分为单独的项目,并从左到右分配方向参数。

答案 1 :(得分:0)

尝试这样..使用array.splice()从数组中删除最后一个元素。然后使用... spread operator

var fieldsToFetch = ['name', 'class', 'rollNumber'];

     fieldsToFetch.splice(2,1);//now array  having two elements ['name', 'class']

然后

.only(...fieldsToFetch)