js数组方法中,哪些不能改变自身数组(js数组中哪些方法可以改变自身数组)

js数组方法中,哪些不能改变自身数组(js数组中哪些方法可以改变自身数组)JS 数组常用的属性就一个 length 表示数组的长度 length 可以获取数组长度 也可以设置数组长度 比如 var arr 1 2 3 var x arr length 获取数组 arr 的长度 返回 3 arr length 5 设置数组 arr 的长度为 5 var y arr length 返回 5 arr 3 undefined

大家好,我是讯享网,很高兴认识大家。



JS数组常用的属性就一个:length,表示数组的长度。

length可以获取数组长度,也可以设置数组长度。比如:

var arr = [1,2,3];

var x = arr.length; //获取数组arr的长度,返回3

arr.length = 5;  //设置数组arr的长度为5

var y = arr.length;  //返回5

arr[3] = undefined;

arr[4] = undefined;


设置数组长度,如果设置的长度比现有的数组长度大的话,数组将增大,新的元素被添加到数组的尾部,它们的值为undefined;如果设置的长度比现有数组长度小的话,现有数组会被截断,其尾部元素将丢失。

它的方法让我们很方便的操作数组里的数据;

参数可以是数组,也可以是具体的值。用法如下:

var a = [1,2];

var b = a.concat(3,4); //b的值为[1,2,3,4]

var c = [5,6];

var d = a.concat©; //d的值为[1,2,5,6]
var e = a.concat(b,c); //e的值为[1,2,1,2,3,4,5,6]

separator参数表示分隔符,是可选的,默认分隔符是逗号。用法如下:

var a = [1,2];

var b = a.join();  //b的值为1,2

var c = a.join(“*”); //b的值为1*2

join方法和字符串方法里的split是相对的。

join方法是把数组转换成字符串;

split方法是把字符串转换成数组;

<p id=“test”></p>

var a = [1,2];

document.getElementById(“test”).innerHTML = a.toString(); //输出1

<p id=“test”></p>

var a = [1,2];

document.getElementById(“test”).innerHTML = a.toString(); //输出3,1,2

<p id=“test”></p>

var a = [1,2];

document.getElementById(“test”).innerHTML = a.toString(); //输出2

参数index,表示添加/删除元素的位置,从0开始,使用负数可从数组结尾处规定位置,整数,必需。

参数howmany,表示要删除的元素数量。如果设置为 0,则不会删除元素,整数,必需。

参数item1,…..,itemX,表示向数组添加的新元素,可选。

用法如下:

<p id=“test”></p>

document.getElementById(“test”).innerHTML = a.toString(); //输出1,3,2

<p id=“test”></p>

document.getElementById(“test”).innerHTML = a.toString(); //输出1

<p id=“test”></p>

document.getElementById(“test”).innerHTML = a.toString(); //输出1,3

参数start:开始位置。可以是负数。负数表示从数组尾部开始算。-1表示最后一个元素,-2表示倒数第二个元素,以此类推,必需。

参数end:结束位置。可选,默认是到最后一个元素,可以是负数,负数表示从尾部开始算。

返回的元素包括start,不包括end。

用法如下:


讯享网

<p id=“test”></p>

a.reverse();

document.getElementById(“test”).innerHTML = a.toString(); //输出3,2,1


sort(sortby) 方法,对数组的元素进行排序,原有数组发生改变。

参数sortby是可选的,默认按照字母顺序排序。它是一个比较函数,函数有两个参数a和b,返回值用来说明a和b的大小。具体用法如下:

function(a,b){return a-b}

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

<div id=“test”></div>

a.sort();

document.getElementById(“test”).innerHTML = a.toString(); //输出 aaa,bbb,ccc

a.sort();

document.getElementById(“test”).innerHTML = a.toString(); //输出 10,5,8

<div id=“test”></div>

a.sort(function(a,b){return a-b}); //升序

document.getElementById(“test”).innerHTML = a.toString(); //输出 5,8,10

<div id=“test”></div>

a.sort(function(a,b){return b-a}); //降序

document.getElementById(“test”).innerHTML = a.toString(); //输出 10,8,5

var person = [

    {‘name’ : ‘meimei’,‘age’:10},

    {‘name’ : ‘lilei’,‘age’:8}

person.sort(function(a,b){a.age-b.age}); //按照年龄排序

排序后的数组:

[

    {‘name’ : ‘lilei’,‘age’:8}

    {‘name’ : ‘meimei’,‘age’:10}

]

person.sort(function(a,b){

   else if(a.name < b.name) {return -1;}

   else{return 0}

}); //按照姓名排序

排序后的数组:

[

    {‘name’ : ‘lilei’,‘age’:8},

    {‘name’ : ‘meimei’,‘age’:10},

    {‘name’ : ‘xiaoming’,‘age’:7}

]

它的用法是直接用Array类来调取的,参数是要检测的对象,返回值是布尔值。用法如下:

var a = [1,2];

var b = Array.isArray(a); //返回true


数组的迭代方法,说白了,就是循环对每个元素进行操作。所有的迭代方法都不会改变原有数组。所有的方法,我们自己都可以用循环语句加逻辑来实现。

用法如下:

<div id=“test”></div>

var txt = “”;

var a = [45, 3];

a.forEach(callFunction);

function callFunction(value, index, array) {

  txt = txt + value + “<br>”; 

}

document.getElementById(“test”).innerHTML = txt;

回调函数包括三个参数:

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

用法如下:

<div id=“test”></div>

var a = [45, 3];

var b = a.map(callFunction);

function callFunction(value, index, array) {

   return value * 2;

}

document.getElementById(“test”).innerHTML = b; //输出90,6

回调函数包括三个参数:

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

filter() 方法,检测元素,并返回符合条件所有元素的数组。用法如下:


<div id=“test”></div>

var a = [45, 3];

var b = a.filter(callFunction);

function callFunction(value, index, array) {

   return value > 10;

}

document.getElementById(“test”).innerHTML = b; //输出45

回调函数包括三个参数:

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

用法如下:

<div id=“test”></div>

var a = [45, 3];

var b = a.every(callFunction);

function callFunction(value, index, array) {

   return value > 10;

}

document.getElementById(“test”).innerHTML = b; //输出false

回调函数包括三个参数:

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

用法如下:

<div id=“test”></div>

var a = [45, 3];

var b = a.some(callFunction);

function callFunction(value, index, array) {

   return value > 10;

}

document.getElementById(“test”).innerHTML = b; //输出true

回调函数包括三个参数:

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

用法如下:

<div id=“test”></div>

var a = [45, 3,16];

var b = a.find(callFunction);

function callFunction(value, index, array) {

   return value > 10;

}

document.getElementById(“test”).innerHTML = b; //输出45

回调函数包括三个参数:

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

用法如下:


<div id=“test”></div>

var a = [45, 3,16];

var b = a.findIndex(callFunction);

function callFunction(value, index, array) {

   return value > 10;

}

document.getElementById(“test”).innerHTML = b; //输出0

回调函数包括三个参数:

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

用法如下:

<div id=“test”></div>

var a = [45, 3,16];

var b = a.indexOf(3);

document.getElementById(“test”).innerHTML = b; //输出1

两个参数:

item:检索的元素值(必需)

start:开始位置(可选),负数从结尾开始,并搜索到结尾。

lastIndexOf(item,start和 indexOf功能一样,只不过,从结尾开始。

reduce() 方法,将数组元素计算为一个值(从左到右)。用法如下:

<div id=“test”></div>

var a = [45, 3];

var b = a.reduce(callFunction);

function callFunction(total,value, index, array) {

   return total + value;

}

document.getElementById(“test”).innerHTML = b; //输出48

回调函数包括四个参数:

total:初始值, 或者计算结束后的返回值。(必需)

value:元素值(必需)

index:索引(可选)

array:数组本身(可选)

比如:

var b = a.reduce(callFunction,100);

文章内容比较多,需要多练习运用,更多关于前端的文章,可以识别下图的二维码关注微信公众号:“刘小妞的栖息地”查看,感谢大家的支持。

小讯
上一篇 2025-05-05 13:39
下一篇 2025-06-07 12:03

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/145288.html