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;
  };
}

目录
打赏
0
0
0
0
1
分享
相关文章
解决fatal:remote error:You can’t push to git://github.com/username/*.g
通过上述诊断与修复步骤,绝大多数的推送错误都能得到有效解决,确保您的Git工作流顺畅无阻。
419 1
深入理解PHP中的异常处理机制
【9月更文挑战第10天】PHP的异常处理是编程中不可或缺的一部分,它允许开发者优雅地管理错误和意外事件。本文将通过浅显易懂的语言和生动的例子,带你走进PHP异常处理的世界,让你了解如何捕捉和处理异常,以及如何使用这一机制来提升代码的健壮性和可维护性。
跨境电商团队协作办公软件评测!哪几款能挺过节假日高峰?
随着除夕和圣诞节的临近,跨境电商将迎来订单洪峰。本文推荐六款团队协作办公软件,助力电商团队高效应对订单高峰。其中,板栗看板以其清晰的任务管理、便捷的团队协作、精准的数据统计及灵活的自定义功能成为重点推荐对象,同时介绍了Trello、Asana、Monday.com、Wrike和Basecamp五款国外软件,它们分别在简洁直观、精细规划、数据驱动、智能自动化和沟通便捷等方面表现出色。
134 8
跨境电商团队协作办公软件评测!哪几款能挺过节假日高峰?
### 智慧之眼!揭秘GB28181标准下如何打造超能执法记录仪,引领警务新时代!
【8月更文挑战第14天】GB28181标准对智慧可视化指挥控制系统至关重要。本文探讨了如何依据此标准设计一款满足现代警务需求的执法记录仪。首先,需确保指挥控制中心支持GB28181标准并能接入执法记录仪。其次,通过使用`gb28181-android-sdk`等SDK实现设备接入及数据传输。核心功能包括视频采集、编码为H.264格式、本地存储以及通过GB28181协议传输至指挥中心。文章提供了SDK初始化及视频采集编码的示例代码。设计中还应考虑网络状况和异常处理等问题以保证稳定性。
178 1
520PTA钻石争霸赛2
520PTA钻石争霸赛2
60 0
【C++】STL容器——string类的使用指南(含代码演示)(8)
【C++】STL容器——string类的使用指南(含代码演示)(8)
linux系统中利用QT实现环境传感器的数据获取方法
linux系统中利用QT实现环境传感器的数据获取方法
299 0
leetcode-SQL-1731. 每位经理的下属员工数量
leetcode-SQL-1731. 每位经理的下属员工数量
87 0
【数据结构】计算二叉树深度完整C语言代码
【数据结构】计算二叉树深度完整C语言代码
496 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问