Javascript -如何从函数返回部分数组

Javascript - How to return a partial array from a function?

本文关键字:返回部 数组 函数 Javascript      更新时间:2023-09-26

我想在列数组的中间插入许多基于函数getSpecificColumns(parameter)返回的参数的元素。

第一个是工作的,因为它是返回一个单一的对象,但是有任何方法来返回多个元素在数组的中间?

$scope.getSpecificColumns = function (myParam) {
    return { field: "SpecificField1", format: "{0:c}" };
}
$scope.getSpecificColumnsNotWorking = function (myParam) {
    return { field: "SpecificField2", format: "{0:c}" },
           { field: "SpecificField3", format: "{0:c}" };
}  
$scope.positionMontantNavGridOptions = {
    height: 630,
    filterable: {
        mode: "row"
    },
    pageable: true,
    columns: [
        { field: "Field1", width: "200px" },
        { field: "Field2", title: "Field 2", width: "80px" },        
        getSpecificColumns(parameter),
        { field: "Field4" }
    ]
}

如果你想返回一个数组,就返回一个数组:

$scope.getSpecificColumnsNotWorking = function (myParam) {
  return [{ field: "SpecificField2", format: "{0:c}" },
          { field: "SpecificField3", format: "{0:c}" }];
}

表达式,如:

{ field: "SpecificField2", format: "{0:c}" },{ field: "SpecificField3", format: "{0:c}" };

计算为逗号分隔的"子表达式"的前者,例如:

var a = 1, b = 2;
var c = a, b;
alert(c === a);

,在原始代码中,这直接转换为从函数返回的第一个文字对象,而后一个被"丢弃"。

(顺便说一下,如果您不使用myParam参数,您不妨不定义它,也不将其传递到调用中)

首先返回数组,然后使用Array.prototype.concat将其平放为数组。这对你的问题合适吗?

$scope.getSpecificColumnsNotWorking = function (myParam) {
    return [
        { field: "SpecificField2", format: "{0:c}" },
        { field: "SpecificField3", format: "{0:c}" }
    ];
}  
columns: [].concat(
    { field: "Field1", width: "200px" },
    { field: "Field2", title: "Field 2", width: "80px" },        
    getSpecificColumnsNotWorking (parameter),
    { field: "Field4" });