jQuery数组迭代

时间:2015-01-30 03:18:00

标签: javascript jquery arrays

我试图从动态生成的数值数组中获取连续值,并按顺序将这些连续值成对添加到一起。生成的数组将始终具有偶数个值。举个例子,让我们说数组出来了

myArray = [2, 23, 45, 128, 92, 3]. 

如何使用jQuery迭代生成的数组并获取这样的值?

val1 = myArray[0] + myArray[1];
val2 = myArray[2] + myArray[3];   
val3 = myArray[4] + myArray[5]; 

数组是动态生成的,随着项目列表的增加或减少,我不想对现有的键/值进行硬编码。我需要提出一个公式,该公式将考虑序列对的未来加法或减法。

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:1)

var result=[];

for(var i=0,limit=myArray.length; i<limit; i+=2)
{
    result[i]=myArray[i]+myArray[i+1];
}

答案 1 :(得分:0)

使用jQuery的.each(...)函数为你做一个魔术。

var val = 0;

var myArray = [2, 23, 45, 128, 92, 3];


$.each(myArray, function( index, value ) {

  val = (index % 2 === 0 )? value : val + value; 

  if (index % 2 !== 0 )
    console.log( val); 

});

您可以检查偶数/奇数的索引值并在此处应用您的逻辑...

PS:以上内容将在浏览器的控制台框中显示输出。

工作演示: http://jsbin.com/qivesekono/1/

答案 2 :(得分:0)

您不能使用这样的动态变量名称,请尝试

var myArray = [2, 23, 45, 128, 92, 3],
    obj = {};

for (var i = 0; i < myArray.length / 2; i++) {
    obj['val' + (i + 1)] = myArray[i * 2] + myArray[i * 2 + 1]
}

console.log(obj)

答案 3 :(得分:0)

我会这样做,

var newArry = [], tmp, myArray = [1,2,3,4,5];
myArray.forEach(function(v,i){
    if(i%2>0){
        newArry.push(tmp+v);
    }
    tmp = v;
});

console.log(newArry);
相关问题