㈠数组转字符串

⑴String(arr):将arr中的每个元素转为字符串,用逗号分隔

    固定套路:对数组拍照:用于鉴别是否数组被修改过

⑵arr.join("连接符"):将arr中每个元素转为字符串,用自定义的连接符分隔

// 将字符拼接为单词
var chars = ["H","e","l","l","o"];
console.log(chars.join("")); //Hello

 

⑶固定套路

①将字符组成单词:chars.join("")->  无缝拼接 

扩展:判断数组是空数组:arr.join("")==""

②将单词组成句子:words.join("")

③将数组转化为页面元素的内容:

"<开始标签>"+ 

arr.join("</结束标签><开始标签>") 

+"</结束标签>"

 

㈡拼接和选取

不直接修改原数组,而返回新数组!

⑴拼接

concat()拼接两个或更多的数组,并返回结果

var newArr = arr1.concat(值1,值2,arr2,值3,...)

将值1,值2和arr2中每个元素,以及值3都拼接到arr1的元素之后,返回新数组

其中:arr的元素会被先打散,再拼接

 

var arr1 = [90,91,92];
var arr2 = [80,81];
var arr3 = [70,71,72,73];
var arr4 = arr1.concat(50,60,arr2,arr3); console.log(arr1); //90,91,92 现有数组值不变
console.log(arr4); //90,91,92,50,60,80,81,70,71,72,73

 

⑵选取

slice()返回现有数组的一个子数组

var subArr = arr.slice(starti,endi+1)

选取arr中starti位置开始,到endi结束的所有元素组成新数组返回——原数组保持不变

强调:凡是两个参数都是下标的函数,都有一个特性:

           含头不含尾

 

var arr1 = [10,20,30,40,50];
var arr2 = arr1.slice(1,4);     //20,30,40
var arr3 = arr1.slice(2);      //30,40,50
var arr4 = arr1.slice(-4,-2);   //20,30

console.log(arr1)     //10,20,30,40,50 原数组元素不变

 

⑶选取简写

①一直选取到结尾:可省略第二个参数

②如果选取的元素离结尾近:可用倒数下标:

arr.slice(arr.length-n,arr.length-m+1);

可简写为:arr.slice(-n,-m+1);

③复制数组:

arr.slice(0,arr.length);

可简写为:arr.slice();

 

㈢修改数组

⑴删除

splice 直接修改原数组

arr.splice(starti,n);

删除arr中starti位置开始的n个元素不考虑含头不含尾

其实:var deletes = arr.splice(starti,n);

返回值deletes保存了被删除的元素组成的临时数组

 

var arr1 = [10,20,30,40,50];
var arr2 = arr.splice(2,1);
//var arr2 = arr1.splice(2,2,21,22,23);
//var arr2 = arr1.splice(2,2,[91,92,93]); console.log(arr1);
conlole.log(arr2);

⑵插入

arr.splice(starti,0,值1,值2,...)

在arr中starti位置,插入新值1,值2,...原starti位置的值及其之后的值被向后顺移

 

⑶替换

其实就是删除旧的,插入新的

arr.splice(starti,n,值1,值2,...)

先删除arr中starti位置的n个值,再在starti位置插入新值

强调:删除的元素个数和插入的新元素个数不必一致。

 

㈣颠倒数组

reverse() 颠倒数组中元素的顺序

arr.reverse()

var arr1 = [10,20,30,40,50];
arr1.reverse(); console.log(arr1);

 

强调:仅负责原样颠倒数组,不负责排序

 

㈤排序

将元素按从小到大的顺序重新排列

⑴排序API

arr.sort():默认将所有元素转为字符串再排列

问题:只能排列字符串类型的元素

解决:使用自定义比较器函数

 

⑵排序算法

(手写)冒泡 快速 插入排序

JavaScript的数组API函数的更多相关文章

  1. JavaScript中对数组和数组API的认识

    JavaScript中对数组和数组API的认识 一.数组概念: 数组是JavaScript中的一类特殊的对象,用一对中括号“[]”表示,用来在单个的变量中存储多个值.在数组中,每个值都有一个对应的不重 ...

  2. JavaScript之数组高阶API—reduce()

    一文搞懂JavaScript数组中最难的数组API--reduce() 前面我们讲了数组的一些基本方法,今天给大家讲一下数组的reduce(),它是数组里面非常重要也是比较难的函数,那么这篇文章就好好 ...

  3. JavaScript中常见的数组操作函数及用法

    JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...

  4. [转] 有趣的JavaScript原生数组函数

    在JavaScript中,可以通过两种方式创建数组,Array构造函数和 [] 便捷方式, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typeof操作符返回‘obj ...

  5. JavaScript原生数组函数

    有趣的JavaScript原生数组函数 在JavaScript中,可以通过两种方式创建数组,构造函数和数组直接量, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typ ...

  6. 有趣的JavaScript原生数组函数

    本文由 伯乐在线 - yanhaijing 翻译.未经许可,禁止转载!英文出处:flippinawesome.欢迎加入翻译小组. 在JavaScript中,可以通过两种方式创建数组,Array构造函数 ...

  7. JavaScript进阶系列02,函数作为参数以及在数组中的应用

    有时候,把函数作为参数可以让代码更简洁. var calculator = { calculate: function(x, y, fn) { return fn(x, y); } }; var su ...

  8. JavaScript 数组操作函数--转载+格式整理

    JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,conc ...

  9. javascript中的所有内容都是一个对象:字符串、值、数组、函数…

    javascript中的所有内容都是一个对象:字符串.值.数组.函数…此外,javascript允许自定义对象.javascript对象JavaScript提供多个内置对象,如字符串.日期.数组等.对 ...

随机推荐

  1. [转帖]深度: NVMe SSD存储性能有哪些影响因素?

    深度: NVMe SSD存储性能有哪些影响因素? http://www.itpub.net/2019/07/17/2434/ 之前有一个误解 不明白NVME 到底如何在队列深度大的情况下来提高性能, ...

  2. Series与list

    一.索引 1.1 索引顺序 list的索引为从0到n-1.不可更改索引. Series的索引:如果未定义为从0到n-1.如果定义,则为定义的索引,一旦定义完成,索引对象将不可更改.但是索引是可以改变的 ...

  3. oracle在group by时某列有多个值的拼接

    最近编码过程中出现了group by后,某些列会有多个值,而我需要把这些多个值的列进行拼接的情况,和大家分享一下. 有如下表student: 我们希望以class分组,每组的信息平铺,效果如下 分组首 ...

  4. JAVA基础--JAVA API集合框架(其他集合类,集合原理)

    一.ArrayList介绍 1.ArrayList介绍 ArrayList它是List接口的真正的实现类.也是我们开发中真正需要使用集合容器对象. ArrayList类,它是List接口的实现.肯定拥 ...

  5. Centos8 安装ifconfig(net-tools.x86_64)

    情况: yum search net-tools.x86_64 没有找到结果 解决: 1.yum search net-tools 2. yum install -y net-tools.x86_64 ...

  6. Java小程序—录屏小程序(下半场)

    下半场. 上半场,我们我们写了录屏的程序,那么下半场我们的任务是写一个播放器. 设计思路:播放器的思路就是将图片放在一个JScrollPane中顺序播放,所以还是得使用swing组件,并且仍然要使用线 ...

  7. 数据结构之单链表的实现-java

    一.单链表基本概念 单链表是一种链式存取的数据结构,用一组地址任意的存储单元(一般是非连续存储单元)存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点的构成:元素data + 指针next ...

  8. VS Code 配置碰到的问题

    VS Code 呈现缩进参考线以及语法高亮改变 找到 首选项——>设置→搜索renderIntentGuides→将此选项改为true(默认为false),就可以了.

  9. day2-设置position:fixed/absolute无法使用margin:auto调整居中

    问题描述:父元素给定宽度,子元素给定宽度,设置子元素position为absolute/fixed后,无法使用margin:auto使子元素在父元素中水平居中 html代码如下: <div cl ...

  10. CVE-2018-0802漏洞利用

    看了一天apt报告,主流利用Office鱼叉攻击的漏洞,还是这Microsoft Office CVE-2017-8570,CVE-2017-11882和CVE-2018-0802 三个,而且都知道o ...