首页 > 其他分享 >Array.prototype.concat

Array.prototype.concat

时间:2023-01-19 08:33:06浏览次数:32  
标签:arr element let result 数组 Array prototype concat

概念

Array.prototype.concat方法将数组实例中的元素与添加一个或多个元素(数组)合并成一个新数组。

语法

arr.concat(element1)
arr.concat(element1, element2)
arr.concat(element1, element2 ... elementN)

参数

  • elementN 指需要合并元素(数组)。

返回值

返回新的数组实例。

描述

  1. 如果element是非数组时,将element添加到新数组当中。
  2. 如果element是数组时,将element中的元素逐一添加到新数组中。

例子

例一、当参数element非数组时

let arr = ['前', '端', '咖'];
let result = arr.concat('手', '册');
console.log(result);  // ['前', '端', '咖', '手', '册']

例二、当参数element是数组时

let arr = ['前', '端', '咖'];
let result = arr.concat(['手', '册']);
console.log(result); // ['前', '端', '咖', '手', '册']

例三、当参数element是多维数组时

let arr = ['前', '端', '咖'];
let result = arr.concat(['手', '册', ['qian', 'duan']]);
console.log(result); // ['前', '端', '咖', '手', '册', ['qian', 'duan']]

例三、当参数element是任意值时

let arr = ['前', '端', '咖'];
let result = ['手', '册', 1, true, { qdk: '前端咖' }];
console.log(result); // ['前', '端', '咖', '手', '册', 1, true, { qdk: '前端咖' }]

例三、当参数element不存在时

let arr = ['前', '端', '咖'];
let result = arr.concat();
console.log(result);  // ['前', '端', '咖']

面试

  1. 聊一聊concatpush的区别?

实现 concat 方法

if (!Array.prototype.concat) {
  Array.prototype.concat = function () {
    let arr = [];
    for (let i = 0, l = this.length; i < l; i++) {
      arr.push(this[i]);
    }

    if (arguments.length) {
      for (let i = 0, l = arguments.length; i < l; i++) {
        let elem = arguments[i];
        if (Object.prototype.toString.call(elem) == '[object Array]') {
          for (let j = 0, jl = elem.length; j < jl; j++) {
            arr.push(elem[i]);
          }
        } else {
          arr.push(elem);
        }
      }
    }

    retun arr;
  };
}

公众号

标签:arr,element,let,result,数组,Array,prototype,concat
From: https://www.cnblogs.com/kuikui/p/17061022.html

相关文章

  • Arrays类
    Arrays类一、Arrays类常见方法Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)。toString返回数组的字符串形式Arrays.toString(arr)sort排序(......
  • ArrayList类的常用方法
    ArrayList类的常用方法packageheima01;importjava.util.ArrayList;/*ArrayList常用方法:publicbooleanremove(Objecto):删除指定的元素,返回删除是否成功publicE......
  • JDK 1.8 ArrayList源码分析 关键代码
    /***1.ArrayListAbstractList中实现了List接口冗余,作者已经承认*2.RandomAccess可以随机访问,标记接口***/publicclassArrayList<E>extendsAbstractList<E> ......
  • 字典字段包含逗号,使用GROUP_CONCAT 及 FIND_IN_SET 查出目标数据
    说明:查出(11,22,44)对应(李三,王五,高胖) 的效果 GROUP_CONCAT连接函数FIND_IN_SET(需要查询的id,(11,22,33,44))       selectGROUP_CONCAT(psyt.item_text),rp.id......
  • 关于javaScript中的__proto__和prototype
    区别:__proto__是浏览器对实例化对象中[[prototype]]属性的命名方式,__proto__是属于对象的属性,prototype是属于函数对象的属性。__proto__指向[函数名].prototype,[函数名]......
  • ArrayList和LinkedList的区别
    ArrayList:基于动态数组。连续内存存储,适合下标访问(随机访问)。扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,将老数组数据拷贝到新数组,如果不是尾部插入数据还会涉......
  • JS二进制:File、Blob、FileReader、ArrayBuffer、Base64
    JavaScript提供了一些API来处理文件或原始文件数据,例如:File、Blob、FileReader、ArrayBuffer、base64等。  Blob全称为binarylargeobject,即二进制大对象,它是......
  • [LeetCode] 1814. Count Nice Pairs in an Array
    Youaregivenanarray nums thatconsistsofnon-negativeintegers.Letusdefine rev(x) asthereverseofthenon-negativeinteger x.Forexample, rev(1......
  • 手写笔记11:谈谈ArrayList?
    ......
  • B. Gardener and the Array
    B.GardenerandtheArrayThegardenerKazimirKazimirovichhasanarrayof$n$integers$c_1,c_2,\dots,c_n$.Hewantstocheckiftherearetwodifferents......