[笔记]javascript基本的数组方法

来源:互联网 发布:金色豪门电影知乎 编辑:程序博客网 时间:2024/04/30 10:44

javascript基本的数组方法

/* * javascript基本的数组方法 *///合并var a = [1,2,3,4];var b = new Array(5);a.join();  // 返回"1,2,3,4" | a不变a.join("-");  // 返回"1-2-3-4"b.join("+");  // 返回"+++++"//翻转a.reverse(); // -> a = [3,2,1]//排序var rand = ["DOM","app","Bug","cat"];rand.sort(); // -> rand = ["Bug","DOM","app","cat"] 按首字母排序rand.sort(function(a, b) { //自定义比较函数    var s = a.toLowerCase(); //全转成小写    var t = b.toLowerCase(); //即排序时忽略大小写    if (s < t) return -1; //返回负值表示第一个参数放在前面    if (s > t) return  1; //返回正值表示第一个参数放在后面    return 0;}); // -> rand = ["app","Bug","cat","DOM"]//连接数组a.concat(7, 5, 6); // -> a = [1,2,3,4,7,5,6]a.concat([7,5,6]); // -> a = [1,2,3,4,7,5,6]a.concat([7, [5,6]], 8); // -> a = [1,2,3,4,7,[5,6],8]//返回数组片段var a = [1,2,3,4];a.slice(0, 3); // 两个参数表示起止下标,不包含结束下标元素 ->返回[1,2,3] | a不变a.slice(2); // 缺省第二参数表示到达结尾 -> 返回[3,4]a.slice(1, -1); //负数下标表示从后往前数,-1表示最后一个 -> 返回[2,3]a.slice(-3, -2); // -> 返回[2]//栈操作a.push('a'); //在数组末尾插入元素,->返回新长度 5 | a = [1,2,3,4,'a']a.pop(); //删除并返回末端元素 返回'a' | a = [1,2,3,4]a.shift(); //删除并返回第一个元素 a = [2,3,4]a.unshift('a', [2, 0]); //在数组首端插入元素(可以是多个),返回新长度//插入或删除元素var a = [1,2,3,4,7,5,6];a.splice(); //第一个参数指定起始位置,第二个参数指定删除元素的个数a.splice(4); // 返回[7,5,6] | a = [1,2,3,4]a.splice(1, 2); // 返回[2,3] | a = [1,4]//从第三个参数开始,表示的都是删除后在当前位置要插入的元素a.splice(1, 0, 'a', [5,9]); //返回[] | a = [1,'a',[5,9],4]a.splice(2, 1, '-', {t:'x'}); //返回[5,9] | a = [1,'a','-',{t:'x'},4];/* * ECMAScript 5 新增的数组方法 */var a = [1,2,3,5,8,13];//遍历并处理数组var sum = 0;a.forEach(function(value) { //forEach中的函数可以有三个参数    sum += value;           //分别是:数组元素、索引、数组本身}); // sum = 32 | a不变b = a.map(function(x) {  //map返回一个数组    return x*x;}); // b = [1,4,9,25,64,169]//过滤数组,获取其子集sub = a.filter(function(x) { //回调函数的参数和forEach/map一样    return (x > 5);}); // sub = [8,13]odd = a.filter(function(x, index) {    return index%2 === 1; //返回索引为奇数的元素}); // odd = [2,5,13]//对元素做整体判断a.every(function(x) { //对所有元素进行判断,都符合条件才返回true    return x > 0;}); //返回truea.every(function(x) {return (x%2==1)}); //返回falsea.some(function(x) { //只要有一个元素满足就返回true    return (x%2==1); }); //返回truea.some(function(x) {return x < 0;}); //返回false//数组的累积运算//第一个参数是回调函数,第二个参数是初始值,将传给回调函数的第一个参数var p = a.reduce(function(x, y) { //回调函数第2-4个参数分别是:    return x*y;                   //数组元素、索引、数组本身}, 1);  //计算a的累乘 p = 3120var max = a.reduceRight(function(x, y) { //按照从右往左的方向计算    return (x>y) ? x : y; //返回最大值}); // max = 13//获取下标a.indexOf(8); //获取8第一次出现的下标,返回4a.lastIndexOf(8); //获取8最后一次出现的下标,返回4


0 0
原创粉丝点击