2016-08-12 3 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

@hindmost Кажется, запутанные карты и массивы. Хотя, я думаю, объекты реализованы как 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

Смежные вопросы