栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

你所不知道的数组(ES 6)

你所不知道的数组(ES 6)

文章目录
  • Array.push(element...)
  • Array.pop()
  • Array.shift()
  • Array.unshift(element...)
  • Array.indexOf(elem,index)
  • Array.splice(start,deleteCount,items)
  • Array.slice(begin,end)
  • Array.concat(values)
  • Array.sort()
  • Array.entries()
    • Array.forEach
    • Array.copyWithin
  • 补充
    • 常用操作

Array.push(element…)

将一个或多个元素添加到数组的末尾,返回值:数组新长度

Tip:call 和 apply 合并数组:

var a = ['1', '2'];
var b = ['3', '4'];
var c = ["5" , "6"];

Array.prototype.push.apply(a, [b,c]);

console.log(a);[ "1" , "2" ,['3', '4'] ,["5" , "6"]]

// 类数组的push
var obj = {
  length:0,
  addEle:function addEle(elem){
    [].push.call(this,elem)
  }
}
obj.addEle("1");
obj.addEle({});
console.log(obj.length)
console.log(obj)
Array.pop()

删除数组中最后一个元素。返回值:删除值,如果数组为空则返回undefined

Array.shift()

删除数组中的第一个元素。返回值:删除值,如果数组为空则返回undefined

var names = ["xiaoming","zhangsan","wangwu"]
while( (i = names.shift()) !== undefined) {
  console.log(i)
}
console.log(names) //[]
Array.unshift(element…)

数组头部添加元素,返回值:新增数组的长度

Array.indexOf(elem,index)

在数组中查找指定元素的第一个索引值,查找不到返回-1

elem: 指定元素
index:开始查找的索引位置

var a = [0,1,2,3,4,1];
console.log(a.indexOf(1));  //2
console.log(a.indexOf(1,2)); // 5

查找数组中元素出现的所有位置:

var arr1 = [];
var arr2 = [1,2,3,4,1];
var idx = arr2.indexOf(1); // 1 第一次出现的索引值
while(idx != -1){ // 如果找到,则加入数组,同时从后面元素中继续查找,直到所有
  arr1.push(idx);
  idx = arr2.indexOf(1, idx+1);
}
console.log(arr1);
Array.splice(start,deleteCount,items)

删除/替换/新增数组元素 。它可以改变原数组

start:索引开始位置(超过数组长度:数组末尾添加。负值:数组末位开始,如果负值超过数组长度,表示开始位置为0)
deleteCount:删除元素个数(deleteConut大于start/忽略没写则删除后面所有元素)
items:元素

var test = [1,2,3,4];
var test1 = test.splice(3,1);
console.log(test); // [1,2,3]
console.log(test1); // [4]

var test2 = [1,2,3,4];
var test3 = test2.splice(1);
console.log(test2)//[1]
console.log(test3) // [2,3,4]
Array.slice(begin,end)

slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end),返回一个新数组,它是一个浅拷贝

begin:
索引开始。如果索引为负数则表示从原数组中的倒数第几个元素开始提取
如果省略 begin,则 slice 从索引 0 开始
如果 begin 超出原数组的索引范围,则会返回空数组

end:索引结束
如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取
如果 end 被省略,则 slice 会一直提取到原数组末尾。
如果 end 大于数组的长度,slice 也会一直提取到原数组末尾

Tip:使用splice复制返回新数组

var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var fruits1 = fruits.slice(1, 3);
var fruits2 = fruits.slice(2);
var fruits3 = fruits.slice();
var fruits4 = fruits.slice(1);
console.log(fruits1);//["Orange","Lemon"]
console.log(fruits2);//["Lemon","Apple","Mango"]
console.log(fruits3);//["Banana","Orange","Lemon","Apple","Mango"]
console.log(fruits4);//["Orange","Lemon","Apple","Mango"]
Array.concat(values)

合并两个或多个数组,不更改现有数组,返回新数组(浅拷贝)

const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);
Array.sort()

按照某种规则进行排序,返回数组
规则:默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列
无参数:元素按照转换为的字符串的各个字符的Unicode位点进行排序

const months = ['M1',"A1",'F1','D1'];
months.sort();
console.log(months);

const array1 = [1, 5, 13, 100000];
array1.sort();
console.log(array1);
Array.entries()

返回一个新的Array Iterator对象

Tip: Array Iterator 是一个对象,它的原型上有一个next()方法,用于遍历数组取得原数组的key和value
{ “value”:[0,“a”],“done”:false } ——> iterator.next()

const array1 = ["a","b","c"];
const iterator1 = array1.entries();
console.log(iterator1); //[object Array Iterator]
console.log(iterator1.next().value);//[0,"a"]
console.log(iterator1.next().value);//[1,"b"]

遍历:iterator.next

var arr = ["a","b","c"];
var iter = arr.entries();
var a = [];

for(var i=0; i< arr.length+1; i++){ //0 0+1 1+1
  var tem = iter.next();
  console.log(tem.done);
  if(tem.done !== true){
    console.log(tem.value);
    a[i]=tem.value;
  }
} 
console.log(a); 
=

遍历: for of

var arr = ["a","b","c"];
var iter = arr.entries();
var array = [];
for(let e of iter){
  array.push(e)
}
console.log(array);
Array.forEach Array.copyWithin 补充 常用操作
创建数组:
	var a = [];
	var b = new Array(3);
	b.push(4);
	console.log(b); //[,,,4]

索引访问:
	var a = [1,2,3];
	var b = a[0]; // 1
	var b = a(a.length-1); //获取尾部元素 -   3

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/443516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号