【问题标题】:Jquery JavaScript create dynamic 2 dimensional arrayJquery JavaScript 创建动态二维数组
【发布时间】:2012-11-16 15:18:47
【问题描述】:

您好,我看到有很多示例,但没有一个解释我需要做什么。

我想创建项目并将其添加到二维数组并动态排序。

我一直在搞乱的一些代码:

var Amount = new Array(new Array());  //MULTI ARRAY
var a = 0; //COUNTER

$("input[id^='AmountSpent']").each(function(){
    Amount[a][a] = [a, $(this).val()]; //THIS IS WHERE I GET STUCK... HOW TO ASSIGN VALUES
    a = a + 1;
});

之后我想对数组进行排序。

所以如果数组看起来像这样:

Amount = [[1,2,3,4],[$200,$300,$100,$600]]

我想先排序最高金额:$600, $300, $200, $100

谁能帮帮我。


U P D A T E


使用我从 Rory 获得的代码(非常感谢)我正在执行以下操作:

var amounts = [];    
$("input[id^='AmountSpent']").each(function(i, el){
  amounts.push({ index: i + 1, value: $(el).val() });
});
amounts.sort(function(a, b) {
  if(a.value < b.value) return 1;
  if(a.value > b.value) return -1;
  return 0;
});

循环遍历我正在做的数组:

for (ii = 0; ii < amounts.length; ++ii) {
console.log(amounts[ii].index + " - " +  amounts[ii]); // 
 }

我得到的结果是:

1 - [对象对象]
2 - [对象对象]
3 - [对象对象]

【问题讨论】:

  • 是否有特定的原因需要将其设为二维数组?为什么不是包含两组信息的对象数组?
  • 我需要做的是我有一个值说 a = $900 在数组中我想得到构成 $900 的最高值的总和,所以基本上我想获得索引/id 的 [ 4,3] 用于另一个计算。

标签: javascript jquery multidimensional-array


【解决方案1】:

一个多维数组可能是矫枉过正。就我个人而言,我会使用一个对象数组——假设你需要存储索引。

var amounts = [];    
$(".foo").each(function(i, el){
    amounts.push({ index: i + 1, value: $(el).val() });
});

amounts.sort(function(a, b) {
    if(a.value < b.value) return 1;
    if(a.value > b.value) return -1;
    return 0;
});

Example fiddle


更新

您的循环代码没有访问value 属性,试试这个:

for (ii = 0; ii < amounts.length; ++ii) {
    console.log(amounts[ii].index + " - " +  amounts[ii].value);
}

【讨论】:

  • 谢谢 现在就试试!您可能对矫枉过正,但我​​不是铁杆程序员,只是在我正在做的一个小项目中遇到了这个问题。我需要做的是我有一个值说 a = $900 在数组中我想获得构成 $900 的最高值的总和,所以基本上我想让索引/id 的 [4,3] 用于另一个计算。
  • 当我想遍历数组时,我得到一个 [object object] 错误@RoryMcCrossan
  • @Nev 我已经更新了我的答案,向您展示如何从循环中获取价值
猜你喜欢
  • 2013-02-22
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 2015-07-15
  • 2020-05-20
  • 2017-06-01
相关资源
最近更新 更多