Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $。每个都不适用于jquery中的对象数组_Javascript_Jquery_Arrays_Each - Fatal编程技术网

Javascript $。每个都不适用于jquery中的对象数组

Javascript $。每个都不适用于jquery中的对象数组,javascript,jquery,arrays,each,Javascript,Jquery,Arrays,Each,我有一个数组,我需要使用其中的每一项,但是forEach和$都不适用于数组 这不是一个对象数组;它是一个数组,您已将名为properties的字符串添加到该数组中。JavaScript不像PHP——数组和普通对象之间有着明显的区别 $.each函数将检测您是否已向其传递了一个数组实例,然后它将只查看数字索引属性。将忽略名为属性的字符串 将person对象声明为普通对象,这样会更好: var person = {}; JavaScript数组用于数字索引属性。如果需要将字符串映射到值的对象,请使

我有一个数组,我需要使用其中的每一项,但是forEach和$都不适用于数组


这不是一个对象数组;它是一个数组,您已将名为properties的字符串添加到该数组中。JavaScript不像PHP——数组和普通对象之间有着明显的区别

$.each函数将检测您是否已向其传递了一个数组实例,然后它将只查看数字索引属性。将忽略名为属性的字符串

将person对象声明为普通对象,这样会更好:

var person = {};
JavaScript数组用于数字索引属性。如果需要将字符串映射到值的对象,请使用普通对象。

当使用forEach或$时。每个对象都在数组上循环,它们在数值索引上循环。如果您的代码正在使用字符串属性名创建属性,则您没有任何给定的属性。使用对象而不是数组:

var person = {};
// other code as is
然后您将能够使用,因为它可以处理数组或普通对象。您将无法使用,因为您将没有阵列


另外,您的提琴也不起作用,因为您没有在左侧的框架和扩展部分下包含jQuery。请参阅此更新的工作版本:

这是一个关联数组,实际上只是一个对象。要枚举某些对象obj的键值对,请使用for循环:

for (let key in obj) {
    console.log(key, ":", obj[key])
}
试试这个:

var jsonStr = '[{"firstName": "John", "lastName": "Doe", "age": 46},{"firstName": "John-2", "lastName": "Doe-2", "age": 26}]';
var person = $.parseJSON(jsonStr);
$(person).each(function(index, item) {
    console.log(index + " : " + item.firstName);
});

我建议阅读MDN JavaScript指南:
var jsonStr = '[{"firstName": "John", "lastName": "Doe", "age": 46},{"firstName": "John-2", "lastName": "Doe-2", "age": 26}]';
var person = $.parseJSON(jsonStr);
$(person).each(function(index, item) {
    console.log(index + " : " + item.firstName);
});