You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery .each()遍历数组异常:仅输出首个元素求助

解决$.each遍历数组只输出第一个元素的问题

嘿,我来帮你揪出这个问题的根源!你提到数组长度是2,但$.each只遍历第一个元素,大概率是你的customerChosenMarkers不是标准的JavaScript数组,或者遍历过程被意外中断了,咱们一步步排查:

1. 先确认你的"数组"到底是什么类型

你给出的数组写法0:{...} 1:{...}更像对象字面量的格式,而非标准数组。先在遍历前加一行代码,确认它的真实身份:

console.log("类型:", typeof customerChosenMarkers, "是否为数组:", Array.isArray(customerChosenMarkers));
console.log("数组长度:", customerChosenMarkers.length, "完整内容:", customerChosenMarkers);

如果输出是类型: object 是否为数组: false,那它其实是个类数组对象或者普通对象,而非真正的数组。

2. 针对不同情况的解决方案

情况一:它是普通对象而非数组

如果你的customerChosenMarkers是这样定义的(注意用了大括号{}而非方括号[]):

const customerChosenMarkers = {
  0: {location_name: "none", mid: "none", lat: "", lng: ""},
  1: {location_name: "1 Helena St, Burnley BB10 4AP, UK", mid: 0, lat: "53.78812", lng: "-2.231830"}
};

$.each虽然能遍历对象,但如果对象存在其他不可枚举属性,或者遍历逻辑被干扰,可能会出现异常。建议先把它转成标准数组:

// 转成数组的两种方式
const markerArray = Object.values(customerChosenMarkers);
// 或者
const markerArray = Array.from(Object.values(customerChosenMarkers));

// 再遍历数组
$.each(markerArray, function(index, tag) {
  console.log("LOOP ", index);
});

情况二:它是类数组对象(比如DOM集合、API返回的类数组结构)

如果它是类数组(有length属性但不是数组),可以用Array.from或者slice转成真正的数组:

const markerArray = Array.from(customerChosenMarkers);
// 或者兼容旧浏览器的写法
const markerArray = [].slice.call(customerChosenMarkers);

$.each(markerArray, function(index, tag) {
  console.log("LOOP ", index);
});

情况三:遍历过程被意外终止

检查你的实际遍历代码中,有没有在第一个元素的处理里写了return false——因为在$.each中,return false会直接终止整个遍历循环。如果是这个原因,把return false改成return true或者删掉即可。

3. 最稳妥的写法:先确保是标准数组

直接用标准数组定义customerChosenMarkers,从根源避免问题:

const customerChosenMarkers = [
  {location_name: "none", mid: "none", lat: "", lng: ""},
  {location_name: "1 Helena St, Burnley BB10 4AP, UK", mid: 0, lat: "53.78812", lng: "-2.231830"}
];

// 再遍历
$.each(customerChosenMarkers, function(index, tag) {
  console.log("LOOP ", index);
});

内容的提问来源于stack exchange,提问作者dark_illusion_909099

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:35:08