Array.prototype.concat

简介: 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;
  };
}

目录
相关文章
|
4月前
|
JavaScript 前端开发 开发者
|
7月前
实现array.slice()方法
实现array.slice()方法
|
7月前
ES6的Array.from({length:N})方法创建长度为N的undefined数组,等价于 [...Array(N)]
ES6的Array.from({length:N})方法创建长度为N的undefined数组,等价于 [...Array(N)]
|
7月前
|
JavaScript
Array concat()
Array concat()
101 0
|
前端开发 索引
Array.prototype.at
Array.prototype.at
86 0
|
JavaScript 索引
JS数组常用方法(超级详细,含理解) push、pop、unshift、shift、splice、slice、concat、join、revres、indexOf、sort、filter、map
JS数组常用方法(超级详细,含理解) push、pop、unshift、shift、splice、slice、concat、join、revres、indexOf、sort、filter、map
334 0
|
索引
Array.forEach()
Array.forEach()
86 0
Array.prototype.flat()
Array.prototype.flat()
92 0
|
索引
Array.prototype.flatMap()
Array.prototype.flatMap()
94 0
|
安全 前端开发 索引
Array.prototype.reduce()
Array.prototype.reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
146 0
Array.prototype.reduce()