1、字面量: var arr = [1,2,3]
2、构造函数:var arr = new Array(1,2,3)
3、区别:如果传一个参数 var arr = new Array(10), 则代表创建一个长度为10 的数组,传一个参数的话只能写整数。
4、不可溢出读,会返回undefined
5、可以溢出写
6、数组的方法:
改变原数组:
1)push , pop, shift, unshift,
2)sort :
必须写两形参、看返回值
(1) 当返回值为负数时,那么前面的数放在前面
(2)为正数,那么后面的数在前面
(3)为0时,不动
arr.sort(function (a, b) {
return a-b ; //升序 b-a 降序
});
3)reverse:将数组里的每个元素反转
4)splice(从第几位开始, 截取多少的长度, 在切口处处添加新的数据)
第一个参数:position += position > 0 ? 0 : this.length;
不改变原数组:
1)concat:将两个数组连接,并返回一个新的数组
var arr = [1,2];
var arr1 = [3,4];
var arr3 = arr.concat(arr1); // arr[3] 为 [1,2,3,4]
2)join:将数组用字符串连接成一个字符串, 并返回字符串
var arr = [‘hello‘, ‘world!‘];
var str = arr.join(‘~‘); //str 为 ‘hello~world‘
3)toString:将数组里的每一个元素连接成字符串,并返回一个字符串
var arr = [‘我‘,‘叫‘,‘小明‘];
var str = arr.toString(); //str 为 ‘我叫小明‘
4) slice :
var arr = [1,2,3,4,5,6];
一个参数时:slice(index), 从index开始截取,一直截取到最后一位。
arr.slice(2); //返回 [3,4,5]
两个参数时:slice(从该为开始截取,截取到该位)
arr.slice(2, 4); //返回 [3,4]
5) split : 将字符串按照一个字符串来拆分,返回一个数组
var str = ‘a-3-v-6-g‘;
str.split(‘-‘); // 返回 [‘a‘, ‘3‘, ‘v‘, ‘6‘, ‘8‘]
7、例子
(1) 给一个有序的数组。乱序
var arr = [1,2,3,4,5,6,7]; arr.sort(function) { return Math.random() - 0.5; }
(2) 字符串字节长度排序
var arr = [‘a哈‘, ‘khj哈哈‘, ‘jhjs哈哈哈‘, ‘iu‘, ‘哈哈哈哈哈哈‘]; arr.sort(function(a, b) { return strBytes(a) - strBytes(b); //结果为["iu", "a哈", "khj哈哈", "jhjs哈哈哈", "哈哈哈哈哈哈"] }); //返回字符串字节长度 function strBytes(str) { var num = str.length; for(var i = 0, len = str.length; i < len; i ++) { if(str.charCodeAt(i) > 255) { num ++; } } return num; }
(3) 将下面字符串连接在一起
var str = ‘aa‘, str1 = ‘bb‘, str3 = ‘cc‘, str4 = ‘dd‘, str5 = ‘ee‘, str6 = ‘ff‘; var arr = [str, str1, str2, str3, str4, str5]; arr.jion(‘‘);
(4) 判断类型
function type(target) { //1.分两类 原始值 引用值 //2.区分引用值 var ret = typeof(target); var template = { "[object Array]" : ‘array‘, "[object Object]" : ‘object‘, "[object Number]" : ‘number - object‘, "[object Boolean]" : ‘boolean - object‘, "[object String]" : ‘string - object‘, } if(target === null) { return null; }else if(ret == ‘object‘) { var str = Object.prototype.toString.call(target); return template[str]; }else { return ret; } }
(6) 数组去重
Array.prototype.unique = function() { var obj = {}, arr = []; for(var i = 0, len = this.length; i < len; i ++) { if(!obj[this[i]]) { obj[this[i]] = ‘a‘; arr.push(this[i]); } } return arr; }
原文:https://www.cnblogs.com/hjysunshine/p/12293779.html