JavaScript新手学习笔记1——数组

  今天,我复习了一下JavaScript的数组相关的知识,总结一下数组的API:

  总共有11个API:按照学习的先后顺序来吧,分别是:

  ① toString() 

    语法:arr.toString();

    将数组转化为字符串,并且返回这个字符串,以逗号分隔;但是不改变原数组;    

1 var arr=[1,2,3,4,5];
2 var result=arr.toString();
3 console.log(result); //1,2,3,4,5
4 console.log(arr);    //[1,2,3,4,5]

toString()

  ②concat()

    语法:arr.concat(arr1,arr2,arr3...);

    用于连接2个或者多个数组,该方法不改变原数组,而仅仅返回被连接后的数组的副本。支持打散数据。

1 var arr1=[1,2,3];
2 var arr2=[4,5,6];
3 var arr3=arr1.concat(arr2);
4 console.log(arr1);   //[1, 2, 3]
5 console.log(arr2);   //[4, 5, 6]
6 console.log(arr3);   //[1, 2, 3, 4, 5, 6]

concat()

  ③join()

    语法:arr.join("");

    用于在数组中的每两个相邻元素之间插入指定的字符串进行分割。该方法不改变原数组。特殊情况:字符串为空的时候,以逗号代替。

1 var arr4=[7,8,9];
2 var result2=arr4.join();
3 var result3=arr4.join("--");
4 console.log(arr4);      //[7, 8, 9]
5 console.log(result2);   //7,8,9
6 console.log(result3);   //7--8--9

join()

  ④reverse()

    语法:arr.reverse();

    用于颠倒数组中的顺序。直接修改原数组

1 var arr5=[1,2,3];
2 var result5=arr5.reverse();
3 console.log(arr5);      //[3, 2, 1]
4 console.log(result5);   //[3, 2, 1]

reverse()

  ⑤sort()

    语法:arr.sort(callback);

    对数组元素进行排序。直接修改原数组。如果没有callback,那么按照字符编码进行升序排列。如果有callback就按照callback的规则进行排序    

1 var arr6=[1,3,12,23,45,123,234];
2 var result6=arr6.sort();
3 console.log(arr6);          //[1, 12, 123, 23, 234, 3, 45]
4 console.log(result6);       //[1, 12, 123, 23, 234, 3, 45]
5
6 var arr7=[1,3,12,23,45,123,234];
7 var result7=arr7.sort(function(a,b){return a-b})
8 console.log(result7);   //[1, 3, 12, 23, 45, 123, 234]

sort()

  ⑥splice()

    语法:arr.splice(starti,n,elem1,elem2...)

    用于数组的插入、删除、替换,主要取决于你要删掉的元素个数和你插入元素个数的大小决定。若删掉0个,即为添加,删掉个数=插入个数即为替换,若添加个数为0,则为删除。 返回被删除的元素组成的临时新数组,修改原数组,要插入的值,只能以单独的参数传入,不支持打散数组参数。

 1 var arr8=[1,2,3,4,5,6,7];
 2 var result8=arr8.splice(2,0,8);  //插入
 3 console.log(arr8);    //[1, 2, 8, 3, 4, 5, 6, 7]
 4 console.log(result8); //[]
 5 var arr9=[1,2,3,4,5,6,7];
 6 var result9=arr9.splice(2,1,8);  //替换
 7 console.log(arr9);    //[1, 2, 8, 4, 5, 6, 7]
 8 console.log(result9); //[3]
 9 var arr10=[1,2,3,4,5,6,7];
10 var result10=arr10.splice(2,1);  //删除
11 console.log(arr10);    //[1, 2, 4, 5, 6, 7]
12 console.log(result10); //[3]

splice

  ⑦slice()

    语法:arr.slice(starti,endi+1);

    用于截取数组中从starti到endi位置的数组,若省略endi,则表示从starti开始截取到结尾;若starti为负数,则表示倒着截取。不修改原数组

1 var arr11=[1,2,3,4,5];
2 var result11=arr11.slice(1,3);
3 var result12=arr11.slice(1);
4 var result13=arr11.slice(-1);
5 console.log(arr11);         //[1, 2, 3, 4, 5]
6 console.log(result11);      //[2, 3]
7 console.log(result12);      //[2, 3, 4, 5]
8 console.log(result13);      //[5]

slice()

  ⑧push()

    语法:arr.push(elem1,elem2...);

    用于向数组末尾添加一个或多个元素,并返回数组的长度。修改原数组

1 var arr12=[1,2,3,4];
2 var result14=arr12.push(5);
3 console.log(arr12);     //[1, 2, 3, 4, 5]
4 console.log(result14);  //5

push()

  ⑨pop()

    语法:arr.pop();

    用于删除数组的最后一个元素,并返回被删除的元素。修改原数组。

1 var arr13=[1,2,3,4];
2 var result15=arr13.pop();
3 console.log(arr13);     //[1, 2, 3]
4 console.log(result15);  //4

pop()

  ⑩shift()

    语法:arr.shift();

    用于删除数组的第一个元素,并返回被删除的元素。修改原数组。

1 var arr14=[1,2,3,4];
2 var result16=arr14.shift();
3 console.log(arr14);     //[2, 3, 4]
4 console.log(result16);  //1

shift()

  ?unshift()

    语法:arr.unshift(elem1,elem2,...);

    用于向数组开头添加一个或多个元素,并返回数组的长度。修改原数组

1 var arr15=[1,2,3,4];
2 var result17=arr15.unshift(5);
3 console.log(arr15);     //[5, 1, 2, 3, 4]
4 console.log(result17);  //5

unshift

   总结:数组API比较多,但是一定要记住。并且分清哪些是修改原数组的,哪些没有修改。

修改原数组的API:   reverse()、sort()、push()、pop()、shift()、unshift()、splice()
不修改原数组的API:   toString()、concat()、slice()、join()
时间: 2024-10-10 08:30:13

JavaScript新手学习笔记1——数组的相关文章

JavaScript新手学习笔记(一)

1.JavaScript 对大小写敏感. JavaScript 对大小写是敏感的. 当编写 JavaScript 语句时,请留意是否关闭大小写切换键. 函数 getElementById 与 getElementbyID 是不同的. 同样,变量 myVariable 与 MyVariable 也是不同的. 2.空格 JavaScript 会忽略多余的空格.您可以向脚本添加空格,来提高其可读性.下面的两行代码是等效的: var name="Hello";var name = "

JavaScript新手学习笔记3——三种排序方式(冒泡排序、插入排序、快速排序)

每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名思义,就是小数往上冒,大数往下沉.从第一个数开始,如果比第二个数大就交换位置,然后跟第三个数字进行比较大小,交换位置等. 举例一下,有数组[2,4,3,5,1] 第一次循环:2<4  不交换:4>3 交换:4<5不交换:5>1交换,故结果是[2,3,4,1,5]; 第二次循环:2<

JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前

1.短路逻辑 逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!这里的逻辑运算指的是逻辑与和逻辑或. 我们要理解逻辑与是两个条件都为真的时候,才为真,如果第一个就是假的,那么后面一个也不用执行了.逻辑非是两个条件中有一个是真,则结果为真,所以只要第一个为真,那么结果为真,后面一条语句就不用执行了.于是又如下例题: console.log(2&&3); //3 console.log(2||3); //2 console.log(0&&1); //0 c

javascript面向对象学习笔记(二)——创建对象

javascript面向对象学习笔记(二)--创建对象 工厂模式 该模值抽象了创建具体对象de过程.用函数来封装噫特定接口创建对象的细节. function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name); }; return o; } var person1=createPerson("Chiaki&

bootstrap 新手学习笔记 代码整理

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 实例 - 滚动监听(Scrollspy)插件方法</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/jqu

JavaScript正则表达式学习笔记之一 - 理论基础

自从年前得空写了两篇文章之后就开始忙了,这一忙就是2个月??.当时信誓旦旦说的定期写篇博客的计划也就泡汤了??,不过好在最近有空,顺便总结一下这两个月遇到的几个问题.第一个问题就是项目中用到了一些正则才发现之前被自己忽略的正则是时候补一补了.恰逢今天周六??,就把自己学习JavaScript正则表达式的笔记整理成文,写了这篇关于正则表达式理论基础的文章,希望本文能对有需要的同学提供帮助.号外:本文相对基础,大神请忽略??. 一. 基本概念 正则表达式是用于匹配字符串中字符组合的模式. 一种几乎可

C和指针 学习笔记-3.数组与指针

数据名代表首地址 指向数组的指针 #include <stdio.h> extern void iterate(int *p); void main(){ int a[]={1,2,3,4,5}; iterate(a); } void iterate(int *p){ int i; for(i=0;i<5;i++){ printf("%d",*p++); } } 指向一维数组的指针 int (*p)[3] #include <stdio.h> void i

JavaScript闭包学习笔记

原文:JavaScript闭包学习笔记 闭包(closure)是JavaScript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于JavaScript初学者应该是很有用的. 一.变量的作用域 要理解闭包,首先必须理解JavaScript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. JavaScript语言的特殊之处,就在于函数内部可以直接读取全局变量. 1 var n=999; 2 3 function f1() { 4 alert

Swift学习笔记(12)--数组和字典的复制

Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中的NSArray和NSDictionary不同,它们是用类来实现的. 注意:下面的小节将会介绍数组,字典,字符串等的复制操作.这些复制操作看起来都已经发生,但是Swift只会在确实需要复制的时候才会完整复制,从而达到最优的性能. 字典的赋值和复制操作 每次将一个字典Dictionary类型赋值给一个