reverse

reverse不是排序方法,它只是数组颠倒方法,可以将数组的顺序颠倒过来。

// 书中的例子,只是作为反向排序讲解,不够全面
let values = [1, 2, 3, 4, 5];
values.reverse();
console.log(values); // [5,4,3,2,1]let numbers = [5,1,2,6,3];
numbers.reverse();
console.log(numbers); // [3, 6, 2, 1, 5]let chars = ['c','b','d','a','w'];
chars.reverse();
console.log(chars); // ["w", "a", "d", "b", "c"]let objs = [{a:1}, {a:5}, {a:3}];
objs.reverse();
console.log(objs);  // [{a:3},{a:5},{a:1}]

sort

sort()方法可以接收一个比较函数,用于判断哪个值应该排在前面。比较函数接收两个参数,如果第一个参数应该排在第二个参数前面,就返回负值;如果两个参数相等,就返回0;如果第一个参数应该排在第二个参数后面,就返回正值。

let values = [0, 1, 5, 10, 15];
values.sort();  // 不传比较函数出来的结果是不正常的
console.log(values); // 0,1,10,15,5let values = [15, 1, 10, 5, 0];
values.sort(function (value1, value2) {if (value1 < value2) {return -1;}else if (value1 > value2) {return 1;}return 0;
});
console.log(values); // 0,1,5,10,15//使用箭头函数简写
let values = [15, 1, 10, 5, 0];
values.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
console.log(values); // 0,1,5,10,15//最简单的方法
let values = [15, 1, 10, 5, 0];
values.sort((a, b) => a - b);
console.log(values); // 0,1,5,10,15

concat

concat()方法可以在现有数组全部元素基础上创建一个新数组。它首先会创建一个当前数组的副本,然后再把它的参数添加到副本末尾,最后返回这个新构建的数组。

let colors = ["red", "green", "blue"];
let colors2 = colors.concat("yellow", ["black", "brown"]);
console.log(colors); // ["red", "green","blue"]
console.log(colors2); // ["red", "green", "blue", "yellow", "black", "brown"]//不能添加第二层的数据
let colors = ["red", "green", "blue"];
let colors2 = colors.concat("yellow", ["black", "brown"],"aaa",["bbb",'ccc', ['a','b',['c']]]);
console.log(colors2);   //["red", "green", "blue", "yellow", "black", "brown", "aaa", "bbb", "ccc", Array(3)]

slice

slice()用于创建一个包含原有数组中一个或多个元素的新数组。slice()方法可以接收一个或两个参数:返回元素的开始索引和结束索引。如果只有一个参数,则 slice()会返回该索引到数组末尾的所有元素。如果有两个参数,则slice() 返回从开始索引到结束索引对应的所有元素,其中不包含结束索引对应的元素。

let colors = ["red", "green", "blue", "yellow", "purple"];
let colors2 = colors.slice(1);
let colors3 = colors.slice(1, 4);
console.log(colors2);   // ["green", "blue", "yellow", "purple"
console.log(colors3);   // ["green", "blue", "yellow"]
console.log(colors);    // ["red", "green", "blue", "yellow", "purple"]

splice

splice()是个非常强大的方法,可删除,替换,增加(需非常熟悉),会改变原数组。

删除需要给 splice() 传2个参数:要删除的第一个元素的位置和要删除的元素数量。从原数组中删除任意多个元素,并返回一个数组,返回的数组包含删除的项。比如splice(0, 2) 会删除原数组前两个元素,并返回一个数组,数组中包含前两个已删除的项。

let colors = ["red", "green", "blue"];
let removed = colors.splice(0,1); // 删除第一项,并将第一项返回
console.log(colors);    // ["green", "blue"]
console.log(removed);   // ["red"]let colors = ["red", "green", "blue"];
let removed = colors.splice(-3);
console.log(colors);    // []
console.log(removed);   // ["red", "green", "blue"]let colors = ["red", "green", "blue"];
let removed = colors.splice(-3,2);
console.log(colors);    // ["blue"]
console.log(removed);   // ["red", "green"

插入需要给 splice() 传3个参数:开始位置、0(要删除的元素数量)和要插入的元素,可以在数组中指定的位置插入元素。第三个参数之后还可以传第四个、第五个参数,乃至任意多个要插入的元素。比如,splice(2, 0, “red”, “green”) 会从数组位置2开始插入字符串 “red” 和 “green” 。

let colors = ["red", "green", "blue"];
let removed = colors.splice(1, 0, "yellow", "orange"); // 在位置1插入两个元素
console.log(colors);    // ["red", "yellow", "orange", "green", "blue"]
console.log(removed);   // []

替换splice() 在删除元素的同时可以在指定位置插入新元素,样要传入3个参数:开始位置、要删除元素的数量和要插入的任意多个元素。要插入的元素数量不一定跟删除的元素数量一致。比如,splice(2, 1, “red”, “green”) 会在位置2删除一个元素,然后从该位置开始向数组中插入 “red” 和 “green”。

let colors = ["red", "green", "blue"];
let removed = colors.splice(1, 1, "red", "purple"); // 插入两个值,删除一个元素
console.log(colors);    // ["red", "red", "purple", "blue"]
console.log(removed);   // ["green"]

程序猿头头(js数组reverse,sort,concat,slice, splice)相关推荐

  1. JS 数组 isAarray() typeof push() unshift() splice()替换/删除/插入 slice()切片 join() split() reverse concat

    lianxuudadian    isAarray() shift转移 unshift取消转移 push pop   unshift shift splice 粘接 slice 切片 Join() s ...

  2. js数组的sort排序的原理和应用

    1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串( ...

  3. js数组的sort排序详解

    http://www.cnblogs.com/longze/archive/2012/11/27/2791230.html <body> <div> sort()对数组排序,不 ...

  4. js数组的sort排序(获取中位数)

    默认的sort排序,不指定参数,将会发现排序结果不是我们想要的真正排序,如下: A=[1,2,33,22,14,5,132] A.sort() //[1, 132, 14, 2, 22, 33, 5] ...

  5. JS数组中SORT方法使用详解

    1.sort() 方法用类似Map原地算法对数组的元素进行排序,并返回数组,会改变原数组为排序好的数组(重点:会改变原数组) 2.arr.sort([compareFunction]) ①:该方法传入 ...

  6. js 数组对象sort()排序(升序降序)

    升序 let testArr = [{ name: 'tom', age: '12' },{ name: 'marry', age: '17' },{ name: 'xxx', age: '14' } ...

  7. js数组操作(pop,push,unshift,splice,shift方法)

    原文:https://blog.csdn.net/x2145637/article/details/51487855    https://www.cnblogs.com/johnny-cli/p/7 ...

  8. html函数splice,js数组的常用函数(slice()和splice())和js引用的三种方法总结—2019年1月16日...

    总结: slice()和splice() slice(参数1,参数2)可以查找数组下对应的数据,参数1为起始位置,参数2为结束位置,参数2可以为负数,-1对应的是从后向前数的第一个数值.splice( ...

  9. js不用reverse反转数组代码_JavaScript 数组排序

    JavaScript 数组排序 JS 数组方法 JS 数组迭代 sort() 方法是最强大的数组方法之一. 数组排序 sort() 方法以字母顺序对数组进行排序: 实例 var fruits = [& ...

  10. js遍历对象、遍历数组、js数组方法大全、区分map()和forEach()以及filter()、区分for...in...和for...of...

    1.给对象添加属性:使用 object.prop 或object['prop']  给对象添加属性 let obj={};obj.name="zhangsan";obj[" ...

最新文章

  1. Java面向对象4(P~U)
  2. python必背内容-初学Python必背手册
  3. 雅虎宣布关闭旗下7个数字杂志
  4. skywalking原理_微服务链路追踪原理
  5. 苹果面向Mac发布英特尔处理器漏洞缓解措施
  6. [Usaco2007 Dec]宝石手镯[01背包][水]
  7. 进程(Process)和线程(Thread)的区别
  8. 深度剖析 | 初学者应该如何学习前端?该怎么学?
  9. [转】Python--遍历列表时删除元素的正确做法
  10. 仅需10道题轻松掌握Python文件处理 | Python技能树征题
  11. 量化研究丨多空本来就不一样,醒醒吧
  12. 计算机键盘锁不了怎么办,键盘锁住了怎么解锁?键盘锁死了怎么办?
  13. java.sql.SQLException: The server time zone value 'XXX' is unrecognized or represents more tha
  14. 线性回归实战:股价预测(未完)
  15. r语言中残差与回归值的残差图_独家 | 手把手教你用R语言做回归后的残差分析(附代码)-阿里云开发者社区...
  16. Invalid component name: “_Ctor“. Component names should conform to valid cus
  17. 草莓 西瓜 柚子……
  18. 微信小程序使用slot踩坑
  19. 【java源码】火车订票系统
  20. 语音翻译成文字的翻译方法

热门文章

  1. 附加支付和统筹支付_上海市医疗保险,请问账户支付和统筹支付是什...
  2. 蓝桥杯 T32大臣的旅费
  3. 掌上军营服务器信息,智慧军营之视频监控系统
  4. windows权限维持的方法
  5. 哈尔滨学院Day2--A The Puzzle
  6. 深度学习七:GAN和DCGAN入门
  7. The number of method references in a .dex file cannot exceed 64K
  8. QQ空间热修复原理深入解析
  9. 英语练习95 Computers
  10. 记一次配置路由器无线桥接的过程——让古董路由器发挥余热