本文深入解析 JavaScript 中 Array 对象的多种用法。Array 不仅是动态数组,还可模拟 List 和 HashMap。文章通过实例演示了数组的创建、for-in 遍历、键值对操作及对象传值,并详细讲解了自定义比较方法与 sort() 排序函数的实际应用,帮助开发者掌握数组的高级特性。
Array 对象概述
本文通过具体实例详细解析了 JavaScript 中 Array 的使用方法,旨在为读者提供实用的参考与学习素材。
在 JavaScript 中,Array 对象代表数组。它本质上是一个动态数组,功能远超普通数组,兼具 C# 或 Java 中“数组、List、HashMap/Dictionary”的综合特性。
Array 数组的基本使用方式
Array 数组基础用法
以下是 Array 数组的具体使用示例:
示例 1:
var citys = new Array();
//创建数组对象,无需初始化长度,动态
citys[0] = '上海';
citys[1] ='北京';
citys[2] = '深圳';
for(var i=0; i< citys.length; i++){
alert(citys[i]);
}
示例 2(推荐写法):
var arr=[10,true,'哇咔咔'];
for(var i=0;i<arr.length;i++){
alert(arr[i]);
}
Array 遍历技巧
使用 for-in 循环遍历 Array 数组
var arr=['哈尼族','壮族','满族','漂族'];
for(var item in arr){
alert(item+'===='+arr[item]);
}
Array 键值对操作
Array 作为键值对的使用方式
具体操作如下:
例如:
var arr=new Array();
arr["name"]='Jack';
arr["age"]=28;
arr["gender"]='fale';
arr["height"]=180;
for(var item in arr){
alert(item+'===='+arr[item]);
}
遍历 Array 键值对的方法
利用 for-in 循环进行遍历
var arr={name:'James',age:28};
for(var item in arr){
alert(item+'==='+arr[item]);
}
通过对象属性名直接访问键值
var arr={name:'James',age:28};
alert(arr.name);
alert(arr.age);
在方法中传递对象参数
function f1(s){
alert(s.name);
alert(s.age);
}
f1({name:'Rose',age:20});
复杂数据结构处理
处理特殊复杂结构
示例 1:
var arr=[{name:'James',age:19},{name:'Rose',age:18},{name:'Max',age:20}];
for(var i=0;i<arr.length;i++){
alert(arr[i].name+'==='+arr[i].age);
}
示例 2:
var code={name:'Max',children:[{name:'jack',age:20},{name:'rose',age:18}]};
alert(code.name);
for(var i=0;i<code.children.length;i++){
alert(code.children[i].name+'>>'+code.children[i].age);
}
//当然forin也可以,但麻烦
for(var item in code.children){
alert(item+'>>'+code.children[item].name+'==='+code.children[item].age);
}
Array 比较与排序实现
Array 元素的比较与排序
实现一个通用的最大值比较方法
function max(arr,compare){
var m=arr[0];
for(var i=1;i<arr.length;i++){
if(compare(arr[i],m)){
m=arr[i];
}
}
return m;
}
var s1=max([12,32,33,100,8],function(n1,n2){
return n1>n2;
});
alert(s1);
var s2=max(["aa","bbbb","ccc"],function(n1,n2){
return n1.length>n2.length;
});
alert(s2);
JavaScript 内置的 sort() 比较方法
示例 1:
var arr=[23,12,56,200,45];
arr.sort(function(n1,n2){
return n1>n2;
});
alert(arr);
var arrStr=["aa","bbb","cccc"];
arrStr.sort(function(n1,n2){
return n1.length>n2.length;
});
alert(arrStr);
示例 2:
var arr=[{name:'Bob',age:100},{name:'Tom',age:23},{name:'Rose',age:78}];
arr.sort(function(n1,n2){
return n1.age>n2.age;
});
for(var i=0;i<arr.length;i++){
alert(arr[i].name);//Tom,Rose,Bob
}
希望上述关于 JavaScript 程序设计的介绍能对您的开发工作有所帮助。