js:数组

js:数组,第1张

js:数组(创建、遍历、函数)

1、数组

采用单个变量只能存储一个数据,数组能够存储多个数据,获取方式也比较简单。


它是将一组数据存储在当个变量下的存储方式。


2、数组的创建

(1)new方式创建,不指定数组长度

        <script>
var arr=new Array();
arr[]=;
arr[]=true;
arr[]='a';
for(var i=;i<arr.length;i++){
console.log(arr[i]);
console.log(typeof arr[i]);
console.log('---------');
}
</script>

(2)new方式创建数组并指定数组长度:

        <script>
var arr=new Array();
arr[]=;
arr[]=true;
arr[]='a';
for(var i=;i<arr.length;i++){
console.log(arr[i]);
console.log(typeof arr[i]);
console.log('---------');
}
</script>

(3)创建数组的时候直接实例化数组

        <script>
var arr=new Array('a',true,);
for(var i=;i<arr.length;i++){
console.log(arr[i]);
}
</script>

(4)字面量方式创建数组

       <script>
var arr=['a','b','c',true,];
for(var i=;i<arr.length;i++){
console.log(arr[i]);
}
</script>

3、数组的扩容

(1)修改长度

       <script>
var arr=new Array('a',true,);
arr.length=;
for(var i=;i<arr.length;i++){
console.log(arr[i]);
}
</script>

(2)追加元素

       <script>
var arr=new Array('a',true,);
arr[]='';
arr[]='abc';
for(var i=;i<arr.length;i++){
console.log(arr[i]);
}
</script>

3、数组的遍历

(1)for循环遍历方式

        <script>
var arr=new Array('a',true,,'a','qq');
for(var i=;i<arr.length;i++){
console.log(i+':'+arr[i]);
}
</script>

for循环遍历的优化:

       <script>
var arr=new Array('a',true,,'a','qq');
var l=arr.length;
for(var i=;i<l;i++){
console.log(i+':'+arr[i]);
}
</script>

避免了反复获取数组的长度造成程序的性能减低

(2)for ... ...in(效率低)

                <script>
var arr=new Array('a',true,,'a','qq');
for(var i in arr){
console.log(i+':'+arr[i]);
}
</script>

(3)for... ...of

   <script>
var arr=new Array('a',true,,'a','qq');
var l=arr.length;
for(var i of arr){
console.log(i+':'+arr[i]);
}
</script>

for.. ..in的输出的参数是索引,for... ...of直接輸出的是對應索引的内容,性能好于for... ...in,但是不能处理对象

(4)forEach

      <script>
var arr=new Array('a',true,,'a','qq');
var l=arr.length;
arr.forEach( function(item,index){
console.log(index+':'+item)
} )
</script>

性能比for循环要弱

4、相关函数

(1)concat:连接两个数组

      <script>
var arr1=new Array('a',true,,'a','qq');
var arr2=new Array('','');
var arr3=arr1.concat(arr2);
arr3.forEach( function(item,index){
console.log(index+':'+item)
} )
</script>

(2)join() 把数组中的所有元素放入一个字符串,元素通过指定的分隔符进行分隔

        <script>
var arr1=new Array('a',true,,'a','qq');
console.log(arr1.join("-"));
</script>

(3)排序

数字型数据:

       <script>
var arr=new Array(,,,,,,);
console.log(arr.sort());
</script>

字符串型:

         <script>
var arr=new Array('a','c','d','t','b');
console.log(arr.sort());
</script>

sort函数是按照字母顺序(ascII)进行排序的

要想实现对数字的排序,需要添加一个函数:

       <script>
function sortNumber(a,b)
{
return a - b
}
var arr=new Array(,,,,);
console.log(arr.sort(sortNumber));
</script>

(4)其他函数

  • splice:删除元素并添加新元素
  • toString:将数组转换为字符串并返回
  • valueOf:返回数组的原始值
  • unshift:向数组的开头添加一个或更多元素,并返回新的长度
  • push:向数组的末尾添加一个或更多元素,并返回新的长度。


    等... ...

总结:

与c和java的数组不同,js中在同一个数组中允许有多种数据类型的数据存在

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/585610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存