Array是ECMAScript最常见用的类型;数组的每一项都可以保存任何类型的数据;如:可以用数组的第一个位置来保存字符串,可以用数组的第二个位置来保存数值,可以用第三个位置来保存对象等;数组的大小还可以动态调整;

1、访问数组可以用索引

var arr = [1, 2, 3, 9];
arr[2] = "ad";
alert(arr);//,2,ad,9;
arr[4] = "我是增加的";
alert(arr) //1,2,ad,9,我是增加的

也就是说,如果索引小于数组的项数,返回值是这个索引对应的值,如果设置某个值的索引超过了数组现有的项数,会替换指定位置的值;

数组的项数保存在length属性中,这个属性始终会返回0或者更大的值;length不只是只读的,通过这个属性可以向末尾移除项,或者向数组中添加新项;

如果访问数组中不存在的索引的值,会返回undefined值;

2、检查数组(数据类型)

typeof只是能检测基本数据类型,不能加检测对象;

js中通过Object.prototype.toString.call()方法,判断对象属于那种内置类型,可以检测任何数据类型,包括基本数据类型;

var arr = [];
alert(Object.prototype.toString.call(arr))  //[object Array]
var obj = {};
alert(Object.prototype.toString.call(obj)) //[object Object]
var a = 123;
alert(Object.prototype.toString.call(a)) //[object Number]
3、将数组转换成字符串toString()  join() valueof();都会以逗号字符串的形式返回数组项,但是join()方法会议不同的分隔符
来构建这个字符串;但是join()方法不传递任何值,也会以逗号分隔开的;
var arr = ["22","88","99"];
console.log(arr.toString()); //22,88,99
console.log(arr.join(".."));//22..88..99
4、数组的方法:a)  向数组的末尾添加项 push()
var arr = ["22", "88", "99"];
var res = arr.push("op");
console.log(arr, res) // ["22", "88", "99", "op"]  4 返回添加后的是数组的长度;
b)  删除数组末尾项 pop()
var arr = ["22", "88", "99"];
var res = arr.pop();
console.log(arr, res) // ["22", "88"]   "99" 4 返回删除的项;
c)  向数组的开头添加项 unshift()
var arr = ["22", "88", "99"];
var res = arr.unshift("op");
console.log(arr, res) // ["op", "22", "88", "99"]  4  返回删除后数组的长度
d)  向数组的开头删除项 shift();
var arr = ["22", "88", "99"];
var res = arr.shift();
console.log(arr, res) // ["88", "99"]   "22" 返回删除的项
e)  sort():重新排序数组;
var arr = [1, 3, 7, 2, 4, 3, 2];
arr.forEach(function(item,index){if(arr[index] == item){alert("正确")}
}) //返回  正确
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。every() 方法使用指定函数检测数组中的所有元素:
  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。注意: every() 不会改变原始数组。
  
some()方法与every()方法相同,不相同的是,some方法只要传入的函数对数组中的某一项返回true就返回true;
var a = [1, 4, 8, 3, 2, 9];
var btn = a.some(function (item, index, arry) {return item > document.getElementById("box").innerHTML;
})console.log(btn)  //返回true。要是li的值是3,就返回false;
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var a = [1,3,5,6];
var res = a.filter(function(item,index){return item > 5;
})
console.log(res)  //返回大于5的数,6

<ul><li class="" id="box" title="dsfdasf">3</li><li id="box">2</li><li>3</li>
</ul>
var a = [1, 4, 8, 3, 2, 9];
var btn = a.every(function (item, index, arry) {return item > document.getElementById("box").innerHTML;
})console.log(btn)  //返回true。要是li的值是3,就返回false;
var arr = [1, 3, 7, 2, 4, 3, 2];
arr.map(function(item,index){if(arr[index] == item){alert("正确")}
}) //返回  正确
var arr = [1, 3, 7, 2, 4, 3];
arr.sort()
console.log(arr) //[1, 2, 3, 3, 4, 7]
var ary = [23, 67, 134, 19, 56];
console.log(ary.sort());//[134, 19, 23, 56, 67]
//可以看出,sort对10以内的排序可以,10以上的就失效,可以给sort()添加一个函数;
function sum(a,b){return a-b  //如果升序就用a-b  如果降序就用b-a
}
console.log(ary.sort(sum));//[19, 23, 56, 67, 134]
f)  reverse();倒叙,使数组的排序倒置;
var arr = [1, 3, 7, 2, 4, 3];
arr.reverse()
console.log(arr);//[3, 4, 2, 7, 3, 1]
g)  concat():数组的拼接;将两个或者多个数组拼接在一起;不会改变原来数组的值;会创建一个新数组;
var arr = [1, 3, 7, 2, 4, 3];
var arr1 = ["a", "c"];
var arr2 = ["yellow", "red"];
var ary = arr.concat(arr1, arr2);
alert(ary)//1,3,7,2,4,3,a,c,yellow,red
h) slice()接受两个参数,返回数组的起始位置,结束位置;如果只有一个参数,返回该参数指定的位置到结尾项;如果两个参数,返回从第一个参数的起始位置到第二个参数的结束位置,不包括结束位置的项;不会影响原来的数组; 就是查找的意思;
var arr = [1, 3, 7, 2, 4, 3];
var ary = arr.slice(2,4);
console.log(ary);//[7, 2]
i) splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目,返回的是一个数组;删除:splice有两个参数的时候;splice(1,2) 从索引2开始,删除3项;
var arr = [1, 3, 7, 2, 4, 3];
var ary = arr.splice(1, 2);
alert(ary)//3.7 返回的是删除的项
插入:三个参数,第二个参数为0;splice(0,0,"red");将red添加到索引为0的前面;
var arr = [1, 3, 7, 2, 4, 3];
arr.splice(1, 0,"red");
alert(arr)//1,red,3,7,2,4,3 添加到起始索引的前面
替换:三个参数,第二个参数不为0;
var arr = [1, 3, 7, 2, 4, 3];
arr.splice(1, 1,"red");
alert(arr)//1,red,7,2,4,3 将索引为1的项,1项替换掉
j)查找项在数组中的位置;indexOf() lastIndexOf() 这两个都接受两个参数,要查找的项和表示起点位置的索引,索引可以不写,但就表示从头开始查找;indexOf是从数组的开头开始查找,lastIndexof()是从数组的末尾开始查找;
var arr = [1, 3, 7, 2, 4, 3];
console.log(arr.indexOf(2, 0)); //返回3 2所在位置的索引;
4、循环方法:forEach() map()参数是一个函数;函数里边第一个参数为数组的每一项,第二个参数为第一个参数对应的索引;
var arr = [1, 3, 7, 2, 4, 3, 2];
console.log(arr.lastIndexOf(2)); //6
如果没有找到要找的那一项,就会返回-1;多用于判断;

数组(Array)详解;相关推荐

  1. jQuery数组处理详解(含实例演示)

    jQuery的数组处理,便捷,功能齐全. 最近的项目中用到的比较多,深感实用,一步到位的封装了很多原生js数组不能企及的功能. 最近时间紧迫,今天抽了些时间回过头来看 jQuery中文文档 中对数组的 ...

  2. (05)System Verilog 数组类型详解

    (05)System Verilog 数组类型详解 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 数组类型详解 5)结语 1.2 F ...

  3. python随机生成二维列表_对python产生随机的二维数组实例详解

    对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...

  4. Numpy.array()详解 、np.array与np.asarray辨析、 np.array和np.ndarry的区别

    记录一下numpy.array()的详细用法,以及与np.asarray()和np.ndarray()的区别. 目录 1. Numpy.array()详解 1.1 函数形式 1.2 参数详解 1.3 ...

  5. 史上最全JavaScript数组对象详解(二)

    JavaScript数组对象详解(二) 上一篇博客我们讲到了JavaScript数组对象的创建,访问和属性,接下来一篇博客主要讲一下JavaScript数组对象的方法及使用.说到数组的方法,主要分为两 ...

  6. php的取数组长度,php获取数组长度详解

    php获取数组长度详解 在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧. php如何获取数 ...

  7. Numpy.array()详解

    1. Numpy.array()详解 该函数的作用一言蔽之就是用来产生数组. 1.1 函数形式 numpy.array(object, dtype=None, copy=True, order='K' ...

  8. php二维数组实例_什么是php二维数组?php二维数组实例详解

    什么是php二维数组? 二维数组又称为矩阵,本质上是以数组作为数组元素的数组,一个数组的元素如果是一维数组,那么我们就称这个数组是二维数组. PHP二维数组实例详解 我们之前的一篇文章<PHP数 ...

  9. php 数组 指针,php之数组指针详解

    本文主要和大家分享php之数组指针详解,首先我们会和大家分享php 数组指的针操作方法,希望能帮助到大家. 一.php 数组指针操作 利用php的内置函数:key,current,next(),pre ...

最新文章

  1. Mysql中大表添加索引的办法
  2. PHP的转义函数 htmlspecialchars、strip_tags、addslashes解释
  3. BZOJ 1003: [ZJOI2006]物流运输trans
  4. 8:Math.atan2、PathMeasure、点赞飘心效果、点赞数字滚动+1效果、集成支付
  5. 【django】路由传递参数
  6. Daily tips-7月
  7. 新手必学的java报表开发工具FineReport实用技巧
  8. 获取当前组策略配置的信息
  9. java jar 启动脚本
  10. c语言+编程+画图形,C语言图形编程——绘图函数.doc
  11. 安卓开发基础知识4(三星 、ARM 为大朋背书,详解VR一体机解决方案)
  12. 项目经理和产品经理之区别
  13. Prizmo Pro for Mac(OCR文字扫描识别软件)
  14. 光机电一体化实训考核装置
  15. 多因素cox回归结果解释 第二十八讲 R语言-Cox比例风险模型1 - 知乎 (zhihu.com)
  16. 如何卸载阿里巴巴PC流氓软件
  17. 低效程序员的9个坏习惯
  18. calc() 工作原理
  19. 火影忍者粉:入手一个酷炫的NARUTO发光手机壳
  20. 变位词的多种判断方法

热门文章

  1. android日历事件 简书,iOS EventKit 添加日历及提醒事项(重复提醒)
  2. 比较不错的互联网盈利模式分析
  3. 小啊呜产品读书笔记001:《邱岳的产品手记-10》第19讲 产品经理如何与开发打交道(上):打破思维的边界 第20讲 产品经理如何与开发打交道(下):合作与共赢
  4. 数据中台到底是解决什么问题的
  5. iis5.1(xp)发布网站(转)
  6. 在线造字做字库、 红莓繁星技传神-逐浪点顿圆头工程笔手写字创作全过程
  7. 【工具集:在线解方程、自动解题、科学计算】
  8. Android开发——NFC标签读写
  9. 短视频课程内容培训(短视频培训课程大纲)
  10. Android 铃声多媒体音量、静音、震动(附源码)