数组的一些方法属性介绍
来源:互联网 发布:青岛城阳灭门案 知乎 编辑:程序博客网 时间:2024/05/16 06:06
声明数组的两种方式:
1. 构造函数的方式
var array obj = new Array(); 创建一个数组;
var arrayobj = new Array(size); 创建一个指定长度的数组;
2. 声明字面量的方式
var arr = [];
数组赋值注意事项:
数组里面能够存放任意类型的值,并且可以同时存放字符串以及数字,但这样会以后数组的调用造成隐患,所以数字最好按数据类型分类存放;
数组的索引
数组是有序的,数组中每一个元素都有一个索引,索引是从0开始的;
数组的长度
数组有一个length属性,指代数组的长度,即数组中元素的个数;
数组遍历
for(var i = 0; i < arr.length;i++) {
console.log(arr[i]);
}
数组元素的添加
array.push(); 将元素添加到数组结尾,返回数组长度;
array.unshift(); 将元素添加到数组开始位置;
数组元素的删除:
array.pop(); 移除数组中最后一个元素;
array.shift(); 移除数组第一个元素;
array.splice(1,2,"aa","bb");
值说明:
1.开始要删除的下标;
2.要移除的个数;
"aa","bb". 被删除的下标重新赋值;
数组的截取(浅复制,不影响原来的数组)
array.slice(start,[end]);
数组的合并
array.concat(item[item]);
数组的排序
array.reverse(); 反转数组;
array.sort(); 对数组元素进行排序;
查找数组元素出现位置
array.indexof(); 查找元素第一次的位置下标;
array.lastIndexof(); 查找元素最后一次出现的位置下标;如果有两个值,第二个参数表示从第几个下标开始查找;
稀疏数组
数组中存在未赋值的空位置;
数组方法
forEach();
遍历数组的每一个值与下标,依次传递给回调函数供其使用。 作用: 就是为了简化变化数组的过程。 语法: arr.forEach(function(val, i, arr){});
var arr = ['cba', 'nba', 'bbc', 'aac', 'ic'];// 普通方式遍历数组for (var i = 0, len = arr.length; i < len; i++) { console.log(arr[i]);}// 通过forEach方法来遍历arr.forEach(function(val) { console.log(val);});
map();
遍历数组的每一个值与下标,依次传递给回调; 然后接收回调函数返回结果,把这些结果组成一个新数组返回。 作用:为了通过一组数据映射成另外一组数据。 语法:arr.map(function(val, i, arr){return xxx});
var numArr = [1, 3, 5, 8, 10];// 普通方式实现var mapArr = [];for (var i = 0, len = numArr.length; i < len; i++) { mapArr.push(numArr[i] * 10);}console.log(mapArr);// 利用map方法,把arr中的所有值放大10倍console.log(numArr.map(function (val) { return val * 10;}));
filter();
遍历数组的每一个值与下标,依次传递给回调; 如果回调函数执行的结果布尔值为true; 就会保留这个值,最终返回所有被保留的值组成的新数组; 作用:为了过滤那些不需要的数据; 语法:arr.filter(function(val, i, arr){return true})
var numArr = [1, 100, 50, 20, 33, 5, 73, 21];// 大于50的留下,普通方式var newArr = [];for (var i = 0, len = numArr.length; i < len; i++) { if (numArr[i] >= 50) { newArr.push(numArr[i]); }}console.log(newArr);// 大于50的留下,利用filter方法console.log(numArr.filter(function (val) { return val >= 50;}));
some();
遍历数组的每一个值与下标,依次传递给回调, 如果回调中有一个返回true,那么some的结果就为true。 可以认为是||运算符。 some在遇到回调为true的时候,会终止剩余的迭代。 作用:判断一组数据是否含有符合某种规则的数据。 语法:arr.some(function(val, i, arr){return true})
var arr = [1, 'str', function(){}, null, 43, 'nba'];// 判断数组中是否含有字符串类型的数据var has = false;for (var i = 0, len = arr.length; i < len; i++) { if (typeof arr[i] === 'string') { has = true; break; }}console.log(has);// 使用some完成console.log(arr.some(function (val) { // 当some遍历到第二个值的时候,我们返回的true,some就会终止遍历 //console.log(arguments); if (typeof val === 'string') { return true; }}));
var arr = [10, 8, 34, 67, 345, 76];// 遍历数组,如果遇到奇数,那么终止遍历,否则打印其值arr.some(function(val){ // 遇到奇数,返回true,告诉some终止遍历 if (val % 2 !== 0) { return true; } console.log(val);});
every();
遍历数组的每一个值与下标,依次传递给回调, 如果所有的回调中都返回true,那么every的结果才为true。 可以认为是&&运算符。 every在遇到回调为false的时候,会终止剩余的迭代。 作用:判断一组数据是否全部符合某种规则的数据。 语法:arr.every(function(val, i, arr){return true});
var arr = [1, 2, 4, 'ds', Function];// 判断数组中的数据是否全部为数值console.log(arr.every(function (val) { // 如果为number,返回true; // 否则利用函数的默认返回值返回undefined(相当于是false) if (typeof val === 'number') { return true; }}));
var arr = [10, 8, 34, 67, 345, 76];// 遍历数组,如果遇到奇数,那么终止遍历,否则打印其值arr.every(function(val){ // 遇到偶数,返回true,告诉every继续遍历吧 if (val % 2 === 0) { console.log(val); return true; }});
join()
将所有元素转换为字符串拼接在一起,返回生成的字符串,如果不指定分隔符,默认使用逗号;
join() 方法是split() 方法的逆向操作, 后者是将字符串分割成若干块来创建一个数组;
var a = [1, 2, 3];a.join(); // '1, 2, 3'a.join(' '); // '1 2 3'a.join(''); // '123'
reverse()
将数组在原数组的基础上对元素逆向排序,不产生新的数组;
var a = [1,2,3];console.log(a.reverse()); //3,2,1
sort()
将数组中的元素排序并返回排序后的数组,当不带参数调用时, 数组元素已字母顺序表排序;
如果数组包含underfind元素, 它们会被排到数组的尾部;
var a = ['a','c','b'];console.log(a.sort()); // a,b,c
如果需要按照其他方式来排序, 需要给sort()方法传递一个比较函数;
var a = [33, 4, 11, 22];a.sort(); // 11,22,33,4a.sort(function (a, b) { return a - b; // 根据顺序,返回负数>0>正数});a.sort(function (a, b) { return b - a;})
//将字符串数组按照字符长度从小到大排列var arr = ["a", "bsdfdsfb", "cccd", "ddd"];arr.sort(function (a, b) { return b.length - a.length;});console.log(arr);
concat()
创建并返回新的数组, 他的元素包含调用concat()的原始数组的元素和coancat()的每一个参数;
var a = [1,2,3]a.concat(4,5); // 1,2,3,4,5a.concat([4,5]); // 1,2,3,4,5a.concat([4,5],[6,7]); // 1,2,3,4,5,6,7a.concat(4,[5,[6,7]]); // 1,2,3,4,5,[6,7]
slice()
返回指定数组的一个片段或子数组.他的两个参数分别指定了开始和结束的位置(包头不包尾);
如果只有一个参数, 返回的数组将包含从开始位置到数组结尾的所有元素;
如果参数是负数, 它表示相对于数组最后一个元素的位置,如-1 表示最后一个元素;
toString()
将数组转化为字符串;
给数组的原型添加方法
这里以给数组添加一个计算数组长度的方法为例:
Array.prototype.conLength = function(){
console.log(this.length);
}
var arr = [];
arr.push(1,4,7);
arr.conLength();
结果为数组传入值个数:3;
判断真伪数组
function isArrayLike(arrayLike) { /* * 1、判断是不是对象,不是直接返回false * 2、是function或者window,也直接返回false * 3、再判断是不是真数组,是返回true * 4、不是真数组继续判断 * 4.1、判断对象的length是不是为0,是返回true * 4.2、判断length是不是number类型,而且>0,同时还需要拥有length - 1这个属性,满足返回true。 * 5、默认返回false。 * */ // function、window、非对象直接返回false if(typeof arrayLike !== 'object' || arrayLike === null || typeof arrayLike === 'function' || arrayLike === window ) { return false } // 是真数组返回true if({}.toString.call(arrayLike) === '[object Array]') { return true; } // 是伪数组返回true return arrayLike.length === 0 || (typeof arrayLike.length === 'number' && arrayLike.length > 0 && (arrayLike.length - 1) in arrayLike); return false;}
0 0
- 数组的一些方法属性介绍
- 数组的一些常用方法分析 介绍
- 数组的一些常用方法分析 介绍
- JavaScript的一些属性介绍
- style的一些属性介绍
- 数组的一些方法
- 数组的一些方法
- CSS中Zoom属性的一些介绍
- CSS中Zoom属性的一些介绍
- arc模式下的一些属性介绍
- RelativeLayout的一些常用属性介绍
- arc模式下的一些属性介绍
- String方法的一些介绍
- 关于数组的一些方法
- javascript数组的一些方法
- DOM(一)一些属性方法介绍以及兼容性问题
- DOM(一)一些属性方法介绍以及兼容性问题
- DOM(一)一些属性方法介绍以及兼容性问题
- one:AFN缓存机制- URL缓存基本概念
- iOS下JS与原生OC互相调用
- PCIe学习笔记(14)--- BARs & Base & Limit
- node.js上传并解析Excel文件
- TCP/IP五层模型之数据链路层
- 数组的一些方法属性介绍
- windows下使用MinGW+msys编译ffmpeg
- Android Dialog弹出框
- JS 中 call、apply、bind 那些事
- iBET Online Casino Malaysia Rescue Fund Bonus(casino games, iBET, iBET Online Casino, online casino
- 写给新手的Android环境配置
- Espresso实现apk黑盒测试
- bat弹窗交互
- 图像的旋转变换