【问题标题】:Need to iterate values in multi-dimensional array using LINQ JS需要使用 LINQ JS 迭代多维数组中的值
【发布时间】:2015-09-01 03:58:53
【问题描述】:

我创建了如下数组,

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])

【问题讨论】:

  • 该数组声明不是有效的 Javascript。
  • 是的,罗比。我刚刚举了一个例子。
  • 在您的问题中添加“例如”并不使其有效,通过发布一个真正有意义的好示例使其有效。

标签: javascript jquery linq.js


【解决方案1】:

您需要重组您的数组,因为这不是一个有效的 javascript 对象。您不能将对象结构与数组结构混合使用。

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/

【讨论】:

  • 感谢您的帖子。有没有可能直接访问元素?
  • 有,例如:arr[0].num1
  • 很好。解决方案对我有帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
相关资源
最近更新 更多