关于数组操作的“刀枪剑戟斧钺勾叉”

push()

相比较前面两个方法来说,push()是更常用的一个方法。将数据追加到数组尾部里面(unshift()将数据添加到数组的头部),改变原数组返回新数组的长度

实例:

var array=[];
array.push("1");
array.push("2");

结果:2;
原数组:["1","2"];

pop()

用于删除数组的最后一个值并返回被删除的值改变原数组。注意:pop()和shift()对空数组也会进行操作,返回数据为 undefind;而且这两个并没有传参。

实例:

var array=["123","asdasf","第三方第三个","1111"];
array.pop();

结果:"1111";
原数组:["123","asdasf","第三方第三个"];

unshift()

用于向数组头部添加数据修改原数组,返回新数组长度。(push()向数组尾部追加数据。)

实例:

var array = ["1","23","df","45"];
array.unshift("111");

结果:5;
原数组:["111","1","23","df","45"];

shift()

删除数组头部第一个数据,并返回该数据。修改原数组

实例:

var array =["1","23","df","45"];
array.shift();

结果:"1";
原数组:["23","df","45"];

注意:pop()和shift()对空数组也会进行操作,返回数据为 undefind;而且这两个并没有传参。

splice()

删除数组内容,传递参数分别为:开始下标,删除位数,需要添加的数据(从开始下标开始添加),返回删除的数据。修改原数组
实例:

var array=["1","2","3","4","5","6","7","8","9"];
array.splice(0,4,"112","113","117");

结果:["1","2","3","4"]
原数组为:["112","113","117","5","6","7","8","9"];

concat()

合并两个数组。产生一个新数组,不改变原数组
实例:

var array1=["123","23","asda","胜多负少"];
var array2=["鼎折覆餗","咨询费才发","123","dte"];
var array=array1.concat(array2);

array结果:["123", "23", "asda", "胜多负少", "鼎折覆餗", "咨询费才发", "123", "dte"];
array1和array2数组数据不变。

merge()

合并两个数组,修改第一个参数的内容
. m e r g e ( ) 函 数 用 于 合 并 两 个 数 组 内 容 到 第 一 个 数 组 。 .merge() 函数用于合并两个数组内容到第一个数组。 .merge().merge( first, second )
例子:

$.merge( [0,1,2], [2,3,4] )
结果:[0, 1, 2, 2, 3, 4]

copyWithin()

将数组的一部分复制同一数组的另一个位置,数组长度不会改变,返回修改之后的数组
copyWithin(target,start,end);
target:待替换的下标值,如果为负数,则从末尾开始计算;
start:开始复制元素的起始下标,如果为负数,则从末尾开始计算。
end:复制元素的结束下标,不包含该下标的值,如果为负数,则从末尾计算。
实例:

var array = [1,2,3,4,5,6];
array.copyWithin(0,2,4);//[3,4,3,4,5,6]

var array = [1,2,3,4,5,6];
array.copyWithin(3,2,4);//[1,2,3,3,4,6]

fill()

用固定的元素替换数组的一部分。和copyWithin()有用法相似,但是copyWithin()是取本数组一段替换。fill是用自定义元素替换,参数也有所不同。
fill(value,start,end);
value:用于替换的元素。
start:替换的数组位置的初始下标。默认为数组下标0。
end:替换数组位置的结束下标,不包含结束小标。默认为数组末尾(包含数组最后一个值)。
实例:

[1,2,3,4,5,6,7,8,9,0].fill("撒打算发",1,5);
//[1, "撒打算发", "撒打算发", "撒打算发", "撒打算发", 6, 7, 8, 9, 0]
[1,2,3,4,5,6,7,8,9,0].fill("撒打算发",1);
//[1, "撒打算发", "撒打算发", "撒打算发", "撒打算发", "撒打算发", "撒打算发", "撒打算发", "撒打算发", "撒打算发"]

slice()

取出数组的一段组成新的数组不改变原数组
slice(index,len);index开始下标,结束下标(不包含结束下标)。
实例:

var array=["111","222","333","4","5","5555"];
var array1=array.slice(2,4);

array1结果:["333","4"];
array数据不变。

join()

将数组转换成字符串。join(separator)用separator连接组成字符串。不改变原数组
实例:

array=["1","2","3","4","5"];
array.join("");
结果:12345

toLocaleString()

将数组用","组成一个新的字符串,不改变原数组的值。
arr.toLocaleString(locales,options);

  • locales 带有BCP 47语言标记的字符串或字符串数组,关于locales参数的形式与解释,请看Intl页面。

  • options 一个可配置属性的对象,对于数字 Number.prototype.toLocaleString(),对于日期Date.prototype.toLocaleString().
    实例:

      var array = ["234124124124","24214214","213123"];
      array.toLocaleString();//"234124124124,24214214,213123"
    

toString()

返回一个字符串表示指定的元素或数组。感觉和上面的toLocaleString()效果好像差不多。
实例:

var array = ["23","asd","dsad","23"];
array.toString();//"23,asd,dsad,23"

reverse()

数组反转修改原数组

实例:

array=["qqe","sfdsf","123","345","1"];
array.reverse();

结果:["1", "345", "123", "sfdsf", "qqe"]

sort()

数组排序修改原数组

实例:

var array=["43","12","1","34","21","10"];
array.sort();

结果:["1", "10", "12", "21", "34", "43"]

实例2:

var array=["43","12","1","34","21","10"];
array.sort(function(){
    return a  - b;
});

flat()

将多维数组平面化。
按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回,原数组不改变。Array.flat(depth);depth默认为1,Infinity表示展开所有深度的数组。
实例:

var array=["123123",["12we","asda"],["qweqe","sadasd"],["asfdasf",["中心辞职信",["assaf","123123"]]]];
array.flat();
//["123123", "12we", "asda", "qweqe", "sadasd", "asfdasf", ["中心辞职信",["assaf","123123"]]];
array.flat(2);
//["123123", "12we", "asda", "qweqe", "sadasd", "asfdasf", "中心辞职信",["assaf","123123"])];
array.flat(infinity);
//["123123", "12we", "asda", "qweqe", "sadasd", "asfdasf", "中心辞职信", "assaf", "123123"]

flatMap()

方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组不改变原数组。(注意:flatMap()只能展开一层数组。)
实例:

var array=[1,2,3,4,5];
array.flatMap((x)=>[x,x*2]);//[1,2,2,4,3,6,4,8,5,10];
array.flatMap((x)=>[x,[x*2]]);//[1,[2],2,[4].3,[6],4,[8],5,[10]]

keys()

返回一个包含数组中每个索引键的Array Iterator对象。
实例:

var array1 = ['a', 'b', 'c'];
var iterator = array1.keys(); 
for (let key of iterator) {
  console.log(key); 
}

values()

方法返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值
实例:

const array1 = ['a', 'b', 'c'];
const iterator = array1.values();

for (const value of iterator) {
  console.log(value); // expected output: "a" "b" "c"
}

reduce()

将数组内所有元素都经过一个特定的函数(升序运算),将其结果汇总为单个返回值。
reduce(Accumulator,Value ,Index,Array )
Accumulator (acc) (累计器)
Current Value (cur) (当前值)
Current Index (idx) (当前索引)
Source Array (src) (源数组)
实例:

var array = [12,23,21,3,4];
const reducer=(Accumulator ,value)=>Accumulator + value;
array.reduce(reducer);//63
array.reduce(reducer,5);//68

reduceRight()

方法接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。和上面reduce()使用方法基本一致,只是执行顺序不一样。
reduce(Accumulator,Value ,Index,Array )
Accumulator (acc) (累计器)
Current Value (cur) (当前值)
Current Index (idx) (当前索引)
Source Array (src) (源数组)
实例:

var array = [[1,2],[3,4],[5,6]];
const reducers=(Accumulator,value)=>Accumulator.concat(value);
array.reduceRight(reducers);//[5, 6, 3, 4, 1, 2]
array.reduce(reducers);//1, 2, 3, 4, 5, 6]

Array.isArray()

判断是否是数组类型
实例:

var array = [1,2,34,45,56,6];
var string = "fdawrwqr";
var array1=[{"we":123},{"er":34}];

Array.isArray(array);//true
Array.isArray(string);//false
Array.isArray(array1);//true

Array.from()

从一个类似数组或可迭代对象中创建一个新的数组实例
实例:

string
Array.from("foooo");//["f","o","o","o","o"];

Set
var arraySet=new Set(["fds","erw","cv"]);
Array.from(arraySet);//["fds","erw","cv"];

map
var arraymap= new Map([[1,2],[2,3],[3,4],[4,5]]);
Array.from(arraymap);;//[[1,2],[2,3],[3,4],[4,5]];

Array-like object (arguments)
function f() {
  return Array.from(arguments);
}
f(1, 2, 3);//[1,2,3]

Array.from() 方法有一个可选参数 mapFn,让你可以在最后生成的数组上再执行一次 map 方法后再返回

Array.from(obj, mapFn, thisArg)
obj:想要转换成数组的伪数组对象或可迭代对象。
mapFn (可选参数):如果指定了该参数,新数组中的每个元素会执行该回调函数。
thisArg (可选参数):可选参数,执行回调函数 mapFn 时 this 对象。
实例:

var array = new Map([[1,2],[3,4],[5,6],[7,8]]);
Array.from(array,x=>x[0]);//[1,3,5,7]

Array.of()

Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。

Array.of() 和 Array 构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,而不是由7个undefined组成的数组)。

Array.of(1,2,3,4,5);//[1,2,3,4,5]
Array.of(3);//[3]

Array(1,2,3,4);//[1,2,3,4]
Array(3);//[,,]

includes()

includes()判断数组中是否包含某元素,包含查询元素返回true,不包含返回false;对象数组不能使用该方法查询。
includes(valueToFind,fromIndex);valueToFind:需要查询的元素;fromIndex:从什么位置开始查询。
实例:

var array = ["qweqwe","23","wqe",2,34,12,"萨芬是"];
array.includes(2);//true;
array.includes(2,4);//false
array.includes(2,3);//true

find()

方法返回传入一个测试条件(函数)符合条件的数组第一个元素的值。在获取到符合条件的元素时,函数将停止调用。返回符合条件的第一个元素的值。和下面的findIndex()的使用方法是一样的,只是find()返回的是元素,findIndex()返回的是元素下标
实例:

var array=["全市非", "飞洒发放", "下是否高度是", "去问问二", "分式方程", "123", "ew", "23"];
	array.find((v)=>{
		return v.length>3;
	});//"飞洒发放"

findIndex()

JavaScript findIndex() 方法
方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置
findIndex() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, 之后的值不会再调用执行函数。(获取到符合条件的元素后函数就停止调用。);
findIndex() 返回符合条件的元素的索引位置

如果没有符合条件的元素返回 -1

  • 注意: findIndex() 对于空数组,函数是不会执行的。

  • 注意: findIndex() 并没有改变数组的原始值。

实例:

var array=["全市非", "飞洒发放", "下是否高度是", "去问问二", "分式方程", "ew", "w", "23"];
array.findIndex((v)=>{
	return v.length>3;
});//1

indexOf()

indexOf
检查字符串内(也适用于数组)是否含有某个值,没有则返回-1,有则返回该值的下标。indexOf(searchElement,fromIndex);searchElement:待查询的元素。fromIndex:从某个下标开始查询(可省略)。

  • indexOf() 方法对大小写敏感!

  • 如果要检索的字符串值没有出现,则该方法返回 -1。

实例:

var array="hello word";
array.indexOf("hello");

结果:0

indexOf()和findIndex()在操作数组的时候不同之处在于,indexOf()只能查询该字符串中是否存在某值,而findIndex()却是可以自己定义函数方法,可以查找某值,也可以判断大小,方法自定义。

**相同之处:**两者都只能在一个返回查找到的第一个值的索引值。

lastIndexOf()

返回查询元素在数组最后一次出现的索引。从数组后面向前查找。
lastIndexOf(searchElement,fromIndex);searchElement:待查询的元素。fromIndex:从某个下标开始往前查找。
实例:

	var array = [12,23,34,56,23,12];
	array.lastIndexOf(12);//5
	array.lastIndexOf(12,3);//0

map()

数组每一个元素调用map里面的方法,返回一个新数组

map(function(currentValue,index,array){
	//currentValue,正在处理的数组元素
	//index 正在处理的元素的下标
	//array 原数组
})

实例:

var array = [2,23,4,12,4];
array.map((x)=> 3*x);
//[6, 69, 12, 36, 12]

every()

用以比对数组里面的所有元素是否都满足指定函数的测试,所有元素通过测试则返回true,未完全通过则返回false。
实例:

var array = [1,2,5,7,23,45];
array.every(function (item){
	return item>0
})	;//true

array.every(function (item){
	return item>11
});//false

filter()

对数组里面的元素指定函数测试,返回所有符合条件的元素组成新数组原数组不变
实例:

var array=["全市非","飞洒发放","下是否高度是","去问问二","分式方程","123","ew","w"];
array.filter(function(item){
	return item.length>3;
});
//["飞洒发放", "下是否高度是", "去问问二", "分式方程"]

some()

判断数组里面是否至少有一个元素满足提供的函数。返回true或者false;
注意:对于空数组上的任何条件,此方法返回false。
some(value,index,array);

  • value:数组里面的元素

  • index:数组元素的下标

  • array:正在处理的数组
    实例:

    var array = [1,2,3,4,5,6,7,8,9];
    array.some((value)=>value>8);//true;
    array.some((value)=>value>9);//false;

遍历数组

for…in

实例:

var array=[1,2,3,4,45,23,12,43,21,54];
for(var index in array ){
	console.log(index);//获取数组的下标
}

for…of

实例:

var array = [1,2,12,43,23,45,34];
for(var item of array){
	console.log(item);//获取数组的内容
}

forEach

实例:

var array = [1,2,3,2,45,34,23,12];
array.forEach(function(item,index,array){
	console.log(index);//获取数组下标
	console.log(item);//获取数组内容
	console.log(array);//获取原数组
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值