精华内容
下载资源
问答
  • 可以改变原数组方法集合 1.sort();返回改变数组 2.reverse();返回改变数组 3.pop();返回弹出元素 4.push();返回插入位置 5.shift();返回弹出元素 6.unshift();返回插入位置 7.splice();返回...

    可以改变原数组的方法集合

    1.sort();返回改变数组
    2.reverse();返回改变数组
    3.pop();返回弹出元素
    4.push();返回插入数组的长度
    5.shift();返回弹出元素
    6.unshift();返回插入数组的长度
    7.splice();返回删除的元素

    测试代码

    <script>
            var a = [1, 2, 3, 4, 5, 9, 8, 7, 6]
            var b = [1, 1, 1, 1, 1, 1, 1]
            // console.log(a.sort());
            // console.log(a.reverse());
            // console.log(a.join('0'));
            // console.log(a.concat(a, b));
            // console.log(a.pop());
            // console.log(a.push('ssss'));
            // console.log(a.shift());
            // console.log(a.unshift('ssss'));
            // console.log(a.slice(1, 4));
            console.log(a.splice(0, 1, 9));
            console.log(a);
        </script>
    

    数组的方法

    arr.sort()
    给数组排序,先数字后英文再中文

    arr.reverse()
    反转数组元素

    arr.join(str)
    将数组划分为字符串,数组元素以str分隔(默认是逗号)

    arr.concat(arr1,arr2,…,arr3)
    合并数组,可以是多个,多个之间用逗号隔开“,”

    arr.pop()
    弹出arr数组最后一个元素,返回弹出的元素值

    arr.push(data)
    给arr数组最后添加一个data元素,返回新数组的长度

    arr.shift()
    弹出arr数组第一个元素,并反弹出的元素值

    arr.unshift(data)
    给arr数组最前面添加一个data元素,返回新数组的长度

    arr.slice(start,end)
    分割数组,返回arr中start到end之间的元素

    splice(a,b,c,)
    从数组中a的位置删除b个元素用c替代

    indexOf(data,start);

    用于返回某个数组或者字符串中规定字符或者字符串的位置;

    //返回从指定位置,到结束位置(不含)的字符串,如果不指定结束位置,则从开始位置到结尾

    slice(n,m);

    同substring,需要注意和数组中方法slice()的相似

    ES5新增

    indexOf(字符串,开始位置) 返回指定字符串的固定位置

    forEach(回调函数) 遍历数组的,返回key和value

    map(回调函数) 返回新的数组

    filter(回调函数) 当结果为true时返回

    展开全文
  • * - 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度 * - 可以将要添加的元素作为方法的参数传递, * 这样这些元素将会自动添加到数组的末尾 * - 该方法会将数组新的长度作为...

    最近在做一些面试题时经常会遇见js中哪些数组方法会影响到原数组这个问题,我很早就学了js,现在也忘得差不多了,刚好边做题边复习,这里整理了一下哪些数组方法会影响到原数组。


    push()方法:

    /*
    			 * push()
    			 * 	- 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度
    			 * 	- 可以将要添加的元素作为方法的参数传递,
    			 * 		这样这些元素将会自动添加到数组的末尾
    			 * 	- 该方法会将数组新的长度作为返回值返回
    			 */
    
    			var result = arr.push("唐僧","蜘蛛精","白骨精","玉兔精");

    pop()方法:

    /*
    			 * pop()
    			 * 	- 该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回
    			 */
    			result = arr.pop();

    unshift()方法:

    /*
    			 * unshift()
    			 * 	- 向数组开头添加一个或多个元素,并返回新的数组长度
    			 * 	- 向前边插入元素以后,其他的元素索引会依次调整
    			 */
    			//console.log(arr);
    
    			arr.unshift("牛魔王","二郎神");

    shift()方法:

    /*
    			 * shift()
    			 * 	- 可以删除数组的第一个元素,并将被删除的元素作为返回值返回
    			 */
    			result = arr.shift();

    splice()方法:

    
    			/*
    			 * splice()
    			 * 	- 可以用于删除数组中的指定元素
    			 * 	- 使用splice()会影响到原数组,会将指定元素从原数组中删除
    			 * 		并将被删除的元素作为返回值返回
    			 * 	- 参数:
    			 * 		第一个,表示开始位置的索引
    			 * 		第二个,表示删除的数量
    			 * 		第三个及以后。。
    			 * 			可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边
    			 * 	
    			 */
    			
    			arr = ["孙悟空","猪八戒","沙和尚","唐僧","白骨精"];
    			var result = arr.splice(3,0,"牛魔王","铁扇公主","红孩儿");

    reverse()方法:

    //反转数组的顺序
    var arr = ['one', 'two', 'three'];
    arr.reverse(); 
    console.log(arr); // ['three', 'two', 'one']

    sort()方法:

    //排序方法
    sort()方法,两个参数,前减后就是往下升序,后减前就是降序

    结尾:

    下次整理一下不会影响原数组的方法。

    展开全文
  • JS数组方法汇总/数组增删查改

    千次阅读 2016-10-17 02:42:19
    JS数组方法汇总/数组增删查改

    一、every

    语法:array.every(function(currentValue,index,arr), thisValue)

    every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

    every() 方法使用指定函数检测数组中的所有元素:

    • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
    • 如果所有元素都满足条件,则返回 true。

    注意: every() 不会对空数组进行检测。
    注意: every() 不会改变原始数组。
    浏览器兼容性: IE9及以上

    var ages = [32, 33, 16, 40];
    function checkAdult(age) {
        return age >= 18;
    }
    function myFunction() {
        document.getElementById("demo").innerHTML = ages.every(checkAdult);
    }
    输出结果为:
    false

    二、map

    map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

    map() 方法按照原始数组元素顺序依次处理元素。

    注意: map() 不会对空数组进行检测。
    注意: map() 不会改变原始数组。
    浏览器兼容性: IE9及以上

    返回一个数组,数组中元素为原始数组的平方根:

    var numbers = [4, 9, 16, 25];
    function myFunction() {
        x = document.getElementById("demo")
        x.innerHTML = numbers.map(Math.sqrt);
    }
    输出结果为:
    2,3,4,5

    三、filter

    filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

    注意: filter() 不会对空数组进行检测。
    注意: filter() 不会改变原始数组。
    浏览器兼容性: IE9及以上

    实例
    返回数组 ages 中所有元素都大于 18 的元素:

    var ages = [32, 33, 16, 40];
    function checkAdult(age) {
        return age >= 18;
    }
    function myFunction() {
        document.getElementById("demo").innerHTML = ages.filter(checkAdult);
    }
    输出结果为:
    32,33,40

    四、some

    some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。

    some() 方法会依次执行数组的每个元素:

    • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
    • 如果没有满足条件的元素,则返回false。

    注意: some() 不会对空数组进行检测。
    注意: some() 不会改变原始数组。
    浏览器兼容性: IE9及以上

    实例
    检测数组中是否有元素大于 18:

    var ages = [3, 10, 18, 20];
    function checkAdult(age) {
        return age >= 18;
    }
    function myFunction() {
        document.getElementById("demo").innerHTML = ages.some(checkAdult);
    }
    输出结果为:
    true

    五、indexof

    找到某个元素在数组中的索引

    fruits.push("Mango");
    // ["Strawberry", "Banana", "Mango"]
    var pos = fruits.indexOf("Banana");
    // 1

    六、lastIndexOf

    lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

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

    该方法将从尾到头地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的结尾(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一个字符在 stringObject 中的位置。stringObject 中的字符位置是从 0 开始的。

    实例
    查找数组元素 “Apple”出现的位置:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    var a = fruits.lastIndexOf("Apple");
    a 输出结果:2

    以上实例输出结果意味着 “Apple” 位于数组中的第 2 个位置.

    七、toString

    toString() 方法可把数组转换为字符串,并返回结果。

    注意: 数组中的元素之间用逗号分隔。

    实例
    将数组转换为字符串:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.toString();
    fruits 将输出:
    Banana,Orange,Apple,Mango

    八、valueOf

    valueOf() 方法返回 Array 对象的原始值,该原始值由 Array 对象派生的所有对象继承。

    valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。

    注意: valueOf() 方法不会改变原数组。

    实例
    valueOf() 是数组对象的默认方法。

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    var v=fruits.valueOf();
    //fruits.valueOf()与 fruits返回值一样。
    v 输出结果为:
    Banana,Orange,Apple,Mango

    九、shift

    该方法把array的第—个元素移出数组,并且将余下的所有元素前移一位,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefined。

    该方法不创建新数组,而是直接修改原有的数组,返回的是所移除的元素。

    var a = [1,2,3,4,5];
    var b = a.shift(); //a:[2,3,4,5]  b:1

    十、unshift(value, …)

    该方法将参数添加到原数组开头,并返回数组的长度。

    该方法会修改原数组,返回的是修改后数组的长度length。

    var a = [1,2,3,4,5];
    var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5]  b:7

    注意:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。

    十一、pop

    该方法删除原数组最后一个元素,数组的长度减1。

    该方法会修改原数组,可以看作是把原数组的最后一个元素剪切下来了。

    返回的是删除元素的值,如果数组为空则返回undefined。

    var a = [1,2,3,4,5];
    var b = a.pop(); //a:[1,2,3,4]  b:5

    十二、push

    该方法是依次将参数添加到原数组末尾,要添加的值可以是一个或多个。

    如果参数是一个数组,会将数组以一个元素的形式添加到原数组末尾。

    该方法会修改原数组,返回值是新数组的长度length。

    var a = [1,2,3,4,5];
    var b = a.push(6,7); //a:[1,2,3,4,5,6,7]  b:7

    十三、concat

    该方法将后面的元素添加到前面数组的元素后面并以此为元素创建并返回一个新数组。

    如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。即使有重复的元素,也不会去掉。

    该方法并不会修改原数组,返回的是合并后的新数组。

    var a = [1,2,3,4,5];
    var b = a.concat(6,7); //a:[1,2,3,4,5]  b:[1,2,3,4,5,6,7]
    var b = a.concat([4,5],[6,7])   //返回 [1,2,3,4,5,4,556,7]
    var b = a.concat(4, [5,[6,7]])  //返回 [1,2,3,4,5,4,5,[6,7]]

    十四、splice(start,deleteCount,val1,val2,…)

    • start —开始插入和(或)删除的数组元素的下标。
    • deleteCount —从start开始,包括start所指的元素在内要删除的元素个数。这个参数是可选的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。
    • value, … —要插人数组的零个或多个值,从start所指的下标处开始插入。

    该方法从start位置开始(包括start所指的元素在内)删除deleteCount项,并从该位置起插入val1,val2,…

    该方法会修改原数组,返回的是所删除的元素所组成的数组。

    var a = [1,2,3,4,5];
    var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5]  b:[3,4]
    var b = a.splice(0,1); //shift
    a.splice(0,0,-2,-1); var b = a.length; //unshift
    var b = a.splice(a.length-1,1); //pop
    a.splice(a.length,0,6,7); var b = a.length; //push

    十五、reverse

    该方法颠倒数组中元素的顺序。

    该方法会修改原数组,返回的是所得到的新数组。

    var a = [1,2,3,4,5];
    var b = a.reverse(); //a:[5,4,3,2,1]  b:[5,4,3,2,1]

    十六、sort(orderfunction)

    该方法将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。

    如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:

    • 如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,返回一个小于0的值。
    • 如果a等于b,就返回0。
    • 如果a大于b,就返回一个大于0的值。

    注意:数组中undefined的元素都排列在数组末尾。即使你提供了自定义的排序函数也是这样,因为undefined值不会被传递给你提供的orderfunc。

    该方法会修改原数组,返回的是排序后的数组。

    var a = [1,2,3,4,5];
    var b = a.sort(); //a:[1,2,3,4,5]  b:[1,2,3,4,5]

    十七、slice(start,end)

    • start —数组片段开始处的数组下标。如果是负数,它声明从数组尾部开始算起的位置。 也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。
    • end —数组片段结束处的后一个元素的数组下标。如果没有指定这个参数 包含从start开始到数组结束的所有元素。如果这个参数是负数, 从数组尾部开始算起的元素。

    该方法返回从原数组中指定开始下标到结束下标之间的项组成的新数组,但是不包括end所指的元素。如果没有指定end,返回的数组包含从start开始到原数组结尾的所有元素。

    该方法并不修改原数组,相当于复制,返回的是开始下标(包括)到结束下标(不包括)之间的项组成的新数组。

    如果start和end均没有指定,则返回的数组和原数组相等。

    事实上该方法同样可以用来处理字符串。

    var a = [1,2,3,4,5];
    var b = a.slice(2,5); //a:[1,2,3,4,5]  b:[3,4,5]

    十八、join(separator)

    该方法将数组的元素转换成一个字符串,以separator为分隔符把这些字符串连接起来,省略的话则用默认用逗号为分隔符。

    该方法与String对象的split()方法刚好相反,split()方法把一个字符串分割成数组元素,返回的是一个数组。

    该方法不会修改原数组,返回的是生成的字符串。

    var a = [1,2,3,4,5];
    var b = a.join("|"); //a:[1,2,3,4,5]  b:"1|2|3|4|5"
    展开全文
  • 数组哪些方法会改变原数组

    千次阅读 2019-09-15 09:37:24
    改变数组: var arr = [] arr.splice() arr.reverse() arr.fill() arr.copyWithin() arr.sort() arr.push() arr.pop() arr.unshift() arr.shift() 不改变数组: var arr = [] arr.slice() arr.map() arr.forEach() ...
    1. 浅拷贝

    var a = arr.slice(0)
    arr.slice(0,-1);//-1数组最后一个

    function concat(arr1, arr2) {
        var newArr=arr1.slice(0);
        [].push.apply(newArr, arr2);   //用法
        return newArr;
    }
    
    1. 小知识
      push返回的数组长度
      splice返回被删除的项目

    改变数组:

    var arr = []
    arr.splice()
    arr.reverse()
    arr.fill()
    arr.copyWithin()
    arr.sort()
    arr.push()
    arr.pop()
    arr.unshift()
    arr.shift()
    

    不改变数组:

    var arr = []
    arr.slice()
    arr.map()
    arr.forEach()
    arr.every()
    arr.some()
    arr.filter()
    arr.reduce()
    arr.entries()
    arr.find()
    arr.concat('1',['2','3']) //[1,2,3]
    
    展开全文
  • 如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值。arrayObject.pop() push()方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组arrayObject.push(new...
  • 改变原数组方法: ES5: splice() 可删除从 index 处开始的零个或多个元素 sort() pop() 删除尾部元素,返回删除的值 push() 数组尾部添加,返回数组长度 shift() 数组头部元素删除,返回删除元素 unshift() 数组...
  • javascript 返回数组中 最大 最小 平均值多种方法分析比较 by FungLeo前言一组数字中全部是数字,我们需要返回数组中最大或者最小的数字,这是常见的需求.当然,求数组中所有数字的平均值,也是一个很常见的需求.今天我...
  • map()方法返回数组

    千次阅读 2020-02-03 21:31:38
    map() 方法返回一个新数组数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原始数组元素顺序依次处理元素。 如果需要在原数组基础上生成一个新数组,map方法是一个很好的选择,比如: ...
  • 如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值。arrayObject.pop() *push():*push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组,arrayObj...
  • 返回a数组中不存在于b数组的值 输入:两个数组 输出:a数组中不存在于b数组的值 代码 /* 返回a数组中不存在于b数组的值 */ const difference = (a,b) =>{ const s = new Set(b); return a.filter(x=>!s.has(x...
  • js 方法返回一个数组

    千次阅读 2020-07-26 19:10:30
    var b=getList(1); console.log(b[0]); function getList(c){ console.log("c ="+c); var a=new Array(); a.push("1"); a.push("2"); return a; }
  • pop() 方法用于删除并返回数组的最后一个元素。 语法 arrayObject.pop() 返回值 arrayObject 的最后一个元素。 说明 pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值...
  • 如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值。arrayObject.pop() *push():*push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组,arrayObject...
  • 是值数据的集合,在JavaScript数组中的数据类型可以是不同的. 2.数组的声明: (1)var 数组的名称=new Array(); (2)var 数组的名称=[]; 3.数组的初始化 (1)var 数组的名称=new Array(‘值1’,值2,‘值3’,…)//...
  • pop()方法:删除并返回数组的最后一个元素。 语法:arrayObject.pop() 返回值:arrayObject的最后一个元素。 说明:pop()方法将删除arrayObject的最后一个元素,把数组长度减1,并返回它删除的元素的值,如果数组...
  • 以下操作会改变原数组 ...如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值。 let arr = [2,3] let rs = arr.pop() console.log(rs) //3 console.log(arr) // [2] push():pus...
  • js 数组哪些常用方法

    千次阅读 2020-06-30 11:10:20
    2、pop 删除并返回数组的最后一个元素 3、shift 删除并返回数组的第一个元素 4、concat 连接两个或更多的数组,并返回结果。 5、join 把数组的所有元素链接成一个字符串。元素通过指定的分隔符进行分隔。 6、reverse...
  • shift()方法:用于把数组的第一个元素从数组中删除,并返回第一个元素的值。 语法:arrayObject.shift() 返回值:数组原来的第一个元素的值。 说明:如果数组是空的,那么shift()方法将不进行任何操作,返回...
  • 如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值。arrayObject.pop() push():push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组,...
  • 数组对象的作用是:使用单独的变量名来存储一系列的值。 在JS中,数组也是一种对象。 JS中的数组是弱类型的,一个数组可以包含不同类型的元素,甚至是其他对象或数组
  • JS常见方法封装之数组

    千次阅读 2019-02-18 10:42:09
    length 设置或返回数组中元素的数目 Array 对象方法 concat() 连接两个或更多的数组,并返回结果。 join() 把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔。 **注释:**默认使用逗号作为分隔符 push...
  • JavaScript数组方法

    千次阅读 多人点赞 2019-01-13 20:30:42
    js数组方法做个总结和记录,也是方便日后忘记了好再次查询。 在w3c里面,官方给出的数组方法共有30个之多,实际上在开发当中,我们常用的可能也就十多个,下面就把数组方法写下来: 1、concat(),连接两个或者...
  • JavaScript清空数组的三种方法

    万次阅读 多人点赞 2018-05-20 20:17:42
    用length方法可以很轻松地清空数组,代码示例: var arr = [1,2,3]; console.log(arr); arr.length = 0; console.log(arr); 结果如下: 2、splise splice() 方法向/从数组中添加/删除项目,然后返回被...
  • 常用js数组方法

    千次阅读 多人点赞 2019-08-24 20:51:23
    总结常用javascript数组方法Array 对象数组创建设置和读取数组元素数组方法concat()join() Array 对象 Array 对象用于在单个的变量中存储多个值。 数组创建 首先介绍一下数组的创建方法,有两种方式: 字面量方式: ...
  • js数组方法

    2020-11-08 20:53:45
    js数组方法 原生数组方法的描述 数组方法 参数描述 函数原理简述 原数组变化 返回值 push (需要插入的元素) 添加一个或多个元素到数组的末尾 改变 操作后的数组长度 pop 无 删除一个数组中的最后一个元素 ...
  • JavaScript数组方法总结

    2019-10-12 11:33:34
    数组方法总结 ES 3.1 方法 作用 push 在数组尾部增加一项 返回修改后的数组 unshift 在数组头部增加一项 返回被修改后的数组 pop 在数组尾部删除一项 返回被删除的成员 shift 在数组头部删除一项 ...
  • 六种方法实现JavaScript数组去重

    千次阅读 2017-06-15 12:26:26
    JavaScript数组去重问题是面试(或笔试)中可能被问到的题 如果只能说出一两种方法的话,就显得我们很low 所以这里我总结了数组去重的六种方法供大家参考直接遍历首先先来一种简单粗暴的方法 也是很容易就可以...
  • JavaScript删除数组第一个元素的几种方法(不改变原数组返回数组) seayehin 实现结果 var arr = [1, 2, 3, 4, 5]; 删除arr 的第一个元素,不修改arr。 返回新的数组 newArr newArr = [2, 3, 4, 5]; 方法 1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 388,567
精华内容 155,426
关键字:

哪些js方法可以返回数组