JavaScript遍历多维数组
基于ECMAScript5提供遍历数组的forEach⽅法仅能遍历⼀维数组,没有提供循环遍历多维数组的⽅法,所以实现如下遍历多维数组的each ⽅法,以此遍历多维数组。
注意:此处新增了遍历空数组与对象的显⽰⽅式
//遍历多维数组⽅法实现
Array.prototype.each = function (fn) {
try {
//定义计数器
const ZERO = 0;
this.i = ZERO;
//判断数组⾮空且参数的构造器为函数
if (this.length > this.i && fn.constructor === Function) {
javascript全局数组while (this.length > this.i) {
var item = this[this.i];
//如果当前元素是数组
if (item && structor === Array) {
if (item.length > ZERO) {
item.each(fn);
} else {
//空数组显⽰"[]", ⽽⾮空⽩
fn.call(item, "[]");
}
} else {//当前元素⾮数组,此处扩展遍历对象,以键值对⽅式显⽰,⽽⾮[object Object]
if (item && typeof item === "object") {
//⾮空对象
if (Object.keys(item).length > ZERO) {
for (const key in item) {
fn.call(item, key + " : " + item[key]);
}
} else {
//空对象
fn.call(item, "{}");
}
} else {//其余元素,包括对象类型的null
fn.call(item, item);
}
}
this.i++;
}
//销毁计数器,回收内存
delete this.i;
}
} catch (e) {
console.log("error happened in printing multiple-dimension array. error message : " + e);
throw e;
}
return this;
};
var array = ["中国", "Charles", 0, ["A", "B", "C"], ["D", ["E", "F"], "G"], {
name: "ITACHI",
gander: "Male"
}, [], null, undefined, false];
//遍历多维数组
array.each(function (item) {
alert(item);
});
/
/遍历⼀维数组
/*array.forEach(function (item, index, arr) {
alert(item);
});*/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。