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中在同一个数组中允许有多种数据类型的数据存在

js:数组(创建、遍历、函数)的更多相关文章

  1. JS: 数组的循环函数

    JS 数组相关的循环函数,用得挺多,所以有些坑还是要去踩一下,先来看一道面试题. 注意:下面提到的不改变原数组仅针对基本数据类型. 面试题 模拟实现数组的 map 函数. 心中有答案了吗?我的答案放在 ...

  2. JS数组&对象遍历

    遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i+ ...

  3. js数组的splice函数

    一直没搞懂数组的splice函数,今天稍微测试了一下,了解了它的功能,在这里记录一下 1.测试 测试① var a = [1,2,3]; console.info(a.splice(1,1)); co ...

  4. js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数

    1.javascript的数组API Js代码 收藏代码 //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.lengt ...

  5. JS数组(Array)处理函数总结

    1.concat() 连接两个或更多的数组该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本.例如: <script type="text/javascript"&g ...

  6. js数组创建两种方法

    一.数组直接量形式创建数组 var arr=[];//空数组 ,,,,,]; ,,,],{x:,y:}]; ; ,x+,x+]; console.log(arr3); //[1,3,3,4] ,,]; ...

  7. js数组之可变函数

    在js的数组中有两个方法为数组添加元素:1.push();2.unshift(),push函数是将元素添加到数组的末尾,现在不用说大家估计也能猜出来,unshift这个函数就是把元素添加到数组的开头的 ...

  8. js数组的遍历(API)

    1.for 循环 普通遍历方法,可优化,存下数组的length,避免每次都去获取数组的length,性能提升 for(var i=0;i<arr.length;i++){ console.log ...

  9. js数组之sort()函数

    一般我们使用sort函数进行数组的排序,sort()方法有一个可选参数,是用来确定元素顺序的函数.如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序.如: var arr = [&q ...

  10. js every some 遍历函数理解

    1.every let arr = [0, 1, 2, 3, 4, 5]; let result = arr.every((item, index) => { return item >= ...

随机推荐

  1. arduino连接12864LCD方法

    arduino连接12864LCD方法,参考相关代码. https://blog.csdn.net/txwtech/article/details/95038386

  2. 09.DRF-ModelSerializer

    四.模型类序列化器ModelSerializer 如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serial ...

  3. Beta冲刺--项目测试

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 Beta冲刺--项目测试 作业正文 如下 其他参考文献 ... Beta冲刺 ...

  4. elasticserach数据库深度分页查询的原理

    深度分页存在的问题 https://segmentfault.com/a/1190000019004316?utm_source=tag-newest 在实际应用中,分页是必不可少的,例如,前端页面展 ...

  5. 入门大数据---Spark_Streaming基本操作

    一.案例引入 这里先引入一个基本的案例来演示流的创建:获取指定端口上的数据并进行词频统计.项目依赖和代码实现如下: <dependency> <groupId>org.apac ...

  6. nginx web服务器概念了解 配置

    服务器 服务器 服务器是一种提供高效计算的机器,与普通的PC主机相比,具有可观的稳定性,高并发性,可扩展性. 互联网任何一个应用都是以服务器为基础设施的,没有服务器我们就无法访问网络上的任何内容,只能 ...

  7. egret Exml自定义组件

    有个需求,在A组件里面包裹 B组件: 碰到了一些奇怪的问题,这些问题是由于编辑器bug引起的.创建了皮肤后并没有在default.thm.json直接添加进去,造成拖动组件莫名其妙的bug,这里忘记保 ...

  8. plsql启动报 Using filter for all users can lead to poor perform

    首先,这个与Oracle配置无关,就是在使用pl/sql左侧树形目录时会看到非常多的和你当前工作无关的表,视图,序列等,导致打开速度慢. ​解决办法:Tools-->Object browser ...

  9. 前端日常工作中常用开发小技巧 ---JavaScript

    1.格式化金钱值 const ThousandNum = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "," ...

  10. JSTL版本问题

    JSTL的版本有很多,和Servlet,jsp,tomcat都有版本兼容的问题,以下是收藏的相关帖子 JSTL不同版本和EL表达式的关联  https://www.cnblogs.com/yangzh ...