Jquery的每个函数都不能用于字符串索引数组

Jquery each function not working for string indexed arrays

本文关键字:用于 字符串 索引 数组 都不能 函数 Jquery      更新时间:2023-09-26

我不能得到$.each() jquery函数与字符串索引数组工作,任何想法在什么问题?

示例@ JSFiddle ->http://jsfiddle.net/WKDUA/

代码:

var firstArray = [52, 33];
document.writeln("First Array:'n<ul>");
$.each(firstArray, function(key, value)
{
    document.writeln('<li>[' + key + ']: ' + value + "</li>'n");
});
document.writeln("</ul>'n");

var secondArray = new Array();
secondArray['first'] = 'foo';
secondArray['second'] = 'bar';
document.writeln("Second Array:'n<ul>");
$.each(secondArray, function(key, value)
{
    document.writeln('<li>[' + key + ']: ' + value + "</li>'n");
});
document.writeln("</ul>'n");
输出:

First Array:
   [0]: 52
   [1]: 33
Second Array:

数组始终以表示元素位置的整数作为索引。

你正在寻找一个对象,它的属性可以通过括号符号来访问:

var obj = {};
obj['first'] = 'foo';
obj['second'] = 'bar';
document.writeln("Second Array:'n<ul>");
$.each(obj, function(key, value)
{
    document.writeln('<li>[' + key + ']: ' + value + "</li>'n");
});
document.writeln("</ul>'n");

在您的原始代码中,$.each块从未被输入,因为您没有向数组中添加任何元素。您确实在该数组上定义了属性firstsecond并为它们赋值。

例子: http://jsfiddle.net/ddTPu/

字符串索引数组。关联数组)是对象,而不是数组。
数组的索引只能是数字(甚至可以是Math)。PI,因为它是一个数字)。
解决方案是将secondArray声明为一个对象:

var secondArray = {};// or var secondArray = new Object();