2016-08-12 87 views
0

我想在列數組的中間插入許多基於函數getSpecificColumns(參數)返回的參數的元素。Javascript - 如何從函數返回一個部分數組?

第一個工作原因是它返回一個單一的對象,但有什麼辦法可以返回數組中間的許多元素嗎?

$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" } 
    ] 
} 
+1

我在代碼中看不到數組 – hindmost

+0

@ behindmost似乎是混亂的地圖和數組。雖然,我猜對象實現爲使用數組的hashmaps,所以我猜他們是技術上關聯的數組。 – Carcigenicate

回答

2

如果你想返回一個數組,返回數組:

$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}" }; 

評估前者逗號delimeted「子 - 表達「,例如:

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

和你原來的代碼這直接轉化爲第一文本對象,而後者被「丟棄」被從函數返回。

(順便說一句,如果你不使用myParam參數,你還不如不定義它,而不是通過其呼叫)

1

首先返回的數組,然後使用Array.prototype.concat到flaten成陣列。 這是適合您問題的解決方案嗎?

$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" }); 
+0

這就是我一直在尋找的東西。 – Vincent