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