JavaScript 数组 API

JavaScript 数组 API


 数组 API 

  API (Application Programming Interface)应用编程接口。

  已经写好的,可以直接拿来调用的函数/方法,这些函数可以实现特定的功能。

  数组,提供了很多操作数组中数据的 API,简化了操作数据的过程

    

 join() - 将数组转换为字符串

  join([str])

  将数组中所有的元素链接为一个字符串,返回一个字符串。

  此函数不改变原数组。

  参数为自定义分隔符。

  参数可以省略,默认为逗号“,”  。

扫描二维码关注公众号,回复: 9521685 查看本文章

 案例代码:

// join() 将数组中的元素链接为一个字符串

var num =[1,2,3,4,5,6];
console.log(num);
console.log(num.join());  // 默认逗号隔开 1,2,3,4,5,6
console.log(String(num)); // 1,2,3,4,5,6
console.log(num.toString());  // 1,2,3,4,5,6

var date = [2018,5,2];
console.log(date.join("-")); //  2018-5-2

var words = ["hello","today","is","Sunday"];
console.log(words.join(" ")); // "hello today is Sunday"

var chars = ["h","e","l","l","o"];
console.log(chars.join("")); // hello 什么都不输入,是无缝拼接

    

concat() - 拼接数组

  concat(a1,[a2,a3,...]) 

  拼接数组,将当前数组和其他元素或者数组拼接为一个新数组,返回新数组。

  此函数不改变原数组。

  参数既可以是一个值,也可以是一个数组。

  可以接收任意多个参数。

  若参数为数组,会将数组中的元素打散后再拼接。

代码案例

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

var arr2 =[7,8,9]
var newarr2 = arr1.concat(11,22,arr2)
console.log(newarr2)  // 1,2,3,11,22,7,8,9


var arr3 = [[1,2]];
arr3[9] = "a";
var arr4 =[7,8,9];
var n = arr3.concat(arr4);  // 当前数组结构保持不变!!!
console.log(n);  // [[1,2],“a”,7,8,9]

      

 slice()  - 截取数组元素

  slice(开始位置下标,结束位置下标加一)  包头不包尾

  选取当前数组中指定开始到结束位置的元素,组成新数组并返回。

  不改变原数组。

   支持负数下标,表示从后往前数。

  第二个参数可以省略,表示一直取到数组结尾。

  若一个参数都不写,表示选取所有元素,即复制数组。

案例代码

//   slice() 选取当前数组中指定开始到结束位置的元素,组成新数组并返回。
var arr =["a","b","c","d","e","f","g"];
var a1 = arr.slice(2,5); // 包头不包尾
console.log(a1); // cde
console.log(arr); //abcdefg

var a2 =arr.slice(2,-2);
console.log(a2);  // cde

var a3 = arr.slice(2);
console.log(String(a3)) // cdefg 第二个参数省略表示一直取到结尾

var a4 = arr.slice();
console.log(a4); //abcdefg 若一个参数都不写,表示选取所有元素,即复制数组。

     

splice() - 删除/插入/替换元素

  splice(开始删除的起始位置,删除多少个元素,添加的新元素,可多个)

  删除元素,并向数组中添加新元素。

  会直接修改原数组!

  会有返回值,返回被删除的元素组成的数组。

  下标支持负数。

 案例代码

// 删除从 i 位置的 n 个元素。
var a1 =[1,2,3,4,5,6,7,8,9];

a1.splice(2,4);
var d1 = console.log(String(a1));  // 1 2 7 8 9
console.log(d1) // 查看被删除的元素  3 4 5 6

// 删除从 i 位置到结尾的所有元素
var a2 =[1,2,3,4,5,6,7,8,9];
a2.splice(3); // 省略第二个参数表示删除到结尾
console.log(a2); // 1 2 3

// 删除倒数 n 个元素
var a3 =[1,2,3,4,5,6,7,8,9];
a3.splice(-3);
console.log(String(a3)); // 1 2 3 4 5 6


// 插入元素
var a4 =[1,2,3,4,5,6,7,8,9];
a4.splice(2,0,"a");
console.log(String(a4)) // 1 2 a 3 4 5 6 7 8 9


// 替换
// 将从 i 位置开始的元素替换为新元素
var a5 =[1,2,3,4,5,6,7,8,9];
a5.splice(2,3,"a","b","c");
console.log(String(a5));  // 1 2 a b c 6 7 8 9

    

reverse() - 倒序排列数组

   reverse()

   颠倒数组中元素的顺序。

   会直接修改原数组。

案例代码

var n = [1,2,3,4,5,6];
n.reverse();
console.log(String(n));  // 6 5 4 3 2 1

    

sort() - 排序

  sort() 

  排序是默认将数组元素临时转变为字符串,然后比较 Unicode 编码由小到大排列。

  对数组元素进行排序。

  会直接修改原数组。

案例代码

var arr = [2,3,7,9,4,6];
arr.sort();  // 默认由小到大升序排列
console.log(String(arr)) // 2 3 4 6 7 9

var arr2 =["tom","jerry","smith","mia","jack"];
arr2.sort();
console.log(String(arr2)); //jerry jack mia smith tom


var arr3 = [12,3,123,23,2,1];
arr3.sort(); // 按Unicode 编码排列,不是数字大小排列
console.log(String(arr3)); // 1,12,123,2,23,3


var arr4 = [12,3,123,23,2,1];
arr4.sort(sorFn);  // 传入一个自定义的比较函数,作为排序依据
function sorFn(a,b) {  // 固定用法,升序 背锅
   return a-b;
}
function sorFn1(a,b) {  // 固定用法,降序 背锅
    return b-a;
}
console.log(String(arr4)); // 1,2,3,12,23,123
arr4.reverse();
console.log(String(arr4)); // 123 23 12 3 2 1

    

栈和队列

  JS 中可以通过操作数组,实现 栈(Stack)和 队列(Queue)的功能。

,是一端封闭,只能从另一端进出的数据结构。

  特点:(LIFO,Last In First Out)先进后出,即后插入的数据,先被取出。

      

  

案例代码

var a1 = [1,2,3,4,5];
var n1 = a1.push(6,7); // 返回数组新长度
console.log(String(a1)) // 1 2 3 4 5 6 7
console.log(String(n1)) // 7

a1.pop();  // 从结尾处删除一个元素 ,返回被删除的元素
console.log(String(a1)) // 1 2 3 4 5 6


var a2 = [1,2,3,4,5];
a2.unshift(6,7) // 从开头添加新元素,返回新长度
console.log(String(a2)) //  6 7 1 2 3 4 5

a2.shift();  // 删除数组第一个元素 ,返回被删除的元素
console.log(String(a2)) // 7 1 2 3 4 5

      

队列   是只能从一端进,从另一端处的数据结构。

  特点:(FIFO,First In FirstOut)先进先出,即先插入的数据,先被取出

  组合使用数组的方法,可以实现队列功能。

  

 案例代码

//队列
    var a=[1,2,3,4,5];
    a.push(6);//末尾入
    console.log(String(a)); // 1 2 3 4 5 6
    a.shift();//开头出
    console.log(String(a));  // 2 3 4 5 6


    var count=5;
    var queue=[];
    for(var i=1;i<=5;i++){
      queue.push("顾客"+i);
      console.log(String(queue));
    }
    queue.push("你");
    console.log(String(queue));

    while(count>0){
      var first=queue.shift();
      console.log(first+"抢购成功");
      console.log(String(queue));
      count--;
    }
    console.log(queue+"没抢上");

    

  

 结束!~!

发布了118 篇原创文章 · 获赞 123 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_42776111/article/details/104574719