为什么不从对象迭代所有值?

时间:2014-08-01 10:11:23

标签: jquery arrays object iteration

在jQuery中

- 我有这个:

//returns = Object {0: "17", 1: "16", 2: "24"}
console.log(lastColorsSelection);

$( lastColorsSelection).each(function( key, value) {   
    console.log(value[key]); //WHY?
}); 

为什么只有第一个值记录在循环中? (17)我想要17,16& 24要迭代。

3 个答案:

答案 0 :(得分:1)

使用$ .each()函数而不是object.each()

$.each(lastColorsSelection,function( key, value) {   
    console.log(value); 
});

Live Example here

答案 1 :(得分:1)

当您使用$(lastColorsSelection)将对象包装到jQuery对象中时,您将获得一个只包含一个项目的jQuery对象,该项目是原始对象。

当您遍历所有项目(一个)时,key将为0value将成为对象,因此获取value[key]将获得第一个来自对象的项目。

使用$.each method代替each method来迭代数组,并显示value

$.each(lastColorsSelection, function(key, value) {
  console.log(value);
});

答案 2 :(得分:-2)

在纯JavaScript中,可以这样做:

for(var key in lastColorsSelection){
    console.log(lastColorsSelection[key]);
}