2015-09-01 2 views
2

Я создал массив, как показано ниже,нужно перебирать значения в многомерном массиве с помощью LINQ JS

arr =[ {uName:"2015", 1:100,2:10,3:0},{uName:"2011",1:10,2:2,3:19},{uName:"2015",1:10,2:0,3:20}], 

Здесь нужно выбрать arr[0][1] и arr[2][1] где uName is "2015".

Linq запрос,

$.Enumerable.From(arr).Where(function(n){n.uName =="2015"}).Select(function(y){return y.1}).Sum() 

Ожидаемый ответ:

arr[0][1] = 100, arr[2][1] = 10 (or) sum of these value 110 (arr[0][1] + arr[2][1]) 
+0

Это объявление массива не является допустимым Javascript. –

+0

Да, Robby.I только что дал пример. –

+0

Добавление «например» к вашему вопросу не делает его действительным, _you_ делает его действительным, публикуя хороший пример, который на самом деле имеет смысл. –

ответ

0

Вы должны перестроить свой массив, потому что это не является допустимым JavaScript Object. Вы не можете смешивать структуру объекта с структурой массива.

var arr =[ {uName:"2015", num1: 100,num2: 10, num3: 0}, 
      {uName:"2011", num1: 10, num2: 2, num3: 19}, 
      {uName:"2015",num1: 10, num2: 0, num3: 20}]; 

var expected = $.Enumerable.From(arr).Where(
       function(x){return x.uName =="2015"}).Select(
       function(a){ return a.num1}).Sum(); 

Вот скрипка: http://jsfiddle.net/99eu7/37/

+1

Спасибо за сообщение. Есть ли доступ к элементу напрямую? –

+0

Да, есть, например: arr [0] .num1 – lightstalker89

+1

Изобразительное. решение мне помогло. –

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