复习系列--javascript数组的常用方法总结

来源:互联网 发布:淘宝特种经营许可申请 编辑:程序博客网 时间:2024/06/06 09:39

我也不知道这个博客我能坚持多久

数组的简单排序

反向数组 array.reverse()

var unorderedNumber = [4, 8, 9, 6, 7, 10, 52, 69, 74, 52, 33, 1, 65, 97, 5];unorderedNumber.reverse();

排序数组 array.sort()

/*     由于数组排序是将数组元素直接转换成字符串比较    将每个数组元素调用toString()进行比较    所以才会出现下面出现的排序方法 */var array = [0,1,5,10,15];array.sort();console.log(array);  // 0,1,10,15,5// sort()`方法将传入如下方法// 正确的的升序排列传入如下方法// 升序    function compare(value1, value2) {        if (value1 > value2) {            return 1;        } else if (value1 < value2) {            return -1;        } else {            return 0;        }    };    // 降序    function compareLow(value1, value2) {        if (value1 > value2) {            return -1        } else if (value1 < value2) {            return 1        } else {            return 0        }    }    var unorderedNumber = [4, 8, 9, 6, 7, 10, 52, 69, 74, 52, 33, 1, 65, 97, 5];    console.log(unorderedNumber.sort(compare)); // [1, 4, 5, 6, 7, 8, 9, 10, 33, 52, 52, 65, 69, 74, 97]    console.log(unorderedNumber.sort(compareLow)); // [97, 74, 69, 65, 52, 52, 33, 10, 9, 8, 7, 6, 5, 4, 1]// 如果直接想转换数组的顺序,不介意顺序还是升序的话// 可以直接使用reverse方法console.log(unorderedNumber.reverse()); // [1, 4, 5, 6, 7, 8, 9, 10, 33, 52, 52, 65, 69, 74, 97]

将数组合并 array.concat()

// 在没有传递参数的情况下,将添加的元素添加到原有数组末尾 var array = ['name','sex','hobby']; var putArray = ['lalal','23333','hellow'];  var newArray = array.concat(putArray); console.log(newArray) // 'name','sex','hobby','lalal','23333','hellow' var newArray1 = newArray.concat('23333','66666'); console.log(newArray1) // 'name','sex','hobby','lalal','23333','hellow','23333','66666'

插入数组

  • 从后面插入数组
// push 数组的这个方法和接下来要讲的unshift方法都是在工作中用到的最多的方法var array = ['love','my','readers'];array.push('thanks');console.log(array); // ["love", "my", "readers", "thanks"]
  • 从前面插入数组
var array = ['love','my','readers'];array.unshift('thanks');console.log(array) // ["thanks", "love", "my", "readers"]

删除数组

  • 截取数组方法 slice
// 接受一个参数的时候,返回该数组传入值在数组中索引位置的到末尾的所有元素var array = ['res','green','blue','orange'];var array1 = array.slice(1);console.log(array1); // 打印出array从索引1直至结束的所有元素,包含起始位置的元素// 接受两个参数var array2 = array.slice(0,2);console.log(array2); // 打印出array数组其实索引为0和结束索引为2的元素。不包含结束索引上面的元素。// 注意: 如果传入的参数是负数的话,则会自动将将该参数加该数组的长度才是实际传入该方法的数值
  • 删除数组方法 splice
// splice方法有三种,可以在指定位置插入指定元素;可以在指定位置替换元素;最后就是删除指定位置的指定数量// 我只说说我工作中用到最多的删除数组,因为我写angular的时候。如果直接将一个scope变量赋值给一个空的数组,有时候会出现数组不更新的情况。所以我一般处理清空数组对象的方法是如下代码var array = ['res','green','blue','orange']; array.splice(0,array.length);// 这个代码什么意思呢?这个方法的第一个参数是要删除数组元素的起始索引位置,第二个参数是删除的元素个数。这样子就很好理解这个写法了。
  • 位置方法
// 这个方法也是我最近才开始用,但是发现超级方便的一个方法 indexOf(),参数是传入一个数组的元素。它会自动查找,如果你传入的参数是该数组的元素则返回该元素在该数组的索引。反之如果传入的元素不是该数组的元素。则返回-1var array = [1,2,3,4,5,6,7,8,9];console.log(array.indexOf(2));  // 打印出2在该数组中的索引 1console.log(array.indexOf(12)); // 因为找不到12 则打印出来-1
  • 迭代方法
// every() && some() 返回Boolean值 以下是用法var array = [1,2,3,4,5,6,7,8,9,10]; var result = array.every(function(item,index,array){  return (item > 2)});console.log(result);  // false var result1 = array.some(function(item,index,array){  return (item > 2)});console.log(result1);  // true// 这两个方法类似于且和或的关系,当然从单词意思也可以看出,some就是一些嘛,every就是每个嘛。一个是满足部分条件,一个是满足所有条件。// filter  返回所有满足条件的新的数组var array = [1,2,3,4,5,6,7,8,9,10];var result = array.filter(function(item,index,array){   return (item > 3)});console.log(result);  // [4, 5, 6, 7, 8, 9, 10];// 批量操作数组 map()var array = [1,2,3,4,5,6,7,8,9,10];var result = array.map(function(item,index,array){   return (item * 3)});console.log(result);  // [3, 6, 9, 12, 15, 18, 21, 24, 27, 30];// 还有就是数组的归并方法  reduce()和reduceRight() 我不做讲了。。至少我现在工作暂时还没有用到呢。有兴趣的可以去了解下。

我要睡觉了,明天把构建之法看看。虽然不是工具书,但是感觉看完也会有蛮多的收获的吧。这种复习系列我会定期更新下去。今天回顾发现还是学到了不少东西。所以,一边学习一边写博客是多么明智的选择。奋斗!!!

原创粉丝点击