博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题:一个数组插入另一个数组固定的位置
阅读量:5280 次
发布时间:2019-06-14

本文共 844 字,大约阅读时间需要 2 分钟。

arr1 = ['a', 'b', 'c']

arr2 = ['1', '2', '3']

把数组arr2插入数组arr1的第二个元素b后面;

思路:

插入特定的位置,我们首先会想到splice,但是又不能直接splice(2, 0, arr2),这样的结果:['a', 'b', ['1', '2', '3'], 'c'];

那我们怎么能把arr2的元素一个一个的splice到arr1中呢,有没有简单的方式呢?

答案是肯定,有一个神奇的函数call、apply,(调用一个函数的方法用在另一个函数上)

apply的参数:第一个为所用在的函数,第二个为一个数组,

所以我们要把arr2 变成一个适合splice的数组(包含splice前2个参数的数组)

在arr2前面插入2个元素:splice前2个参数(开始位置,删除几个元素)

然后把Array的splice方法指向arr1,最重要的是把新得到的arr2整个数组做为参数传给arr1!

这样就完成了arr2插入arr1的具体位置。

var arr1 = ['a', 'b', 'c'];var arr2 = ['1', '2', '3'];// 把arr2 变成一个适合splice的数组(包含splice前2个参数的数组)arr2.unshift(2, 0);Array.prototype.splice.apply(arr1, arr2);console.log(arr1);

------------------------------ 

如果只是在arr1最后插入arr2,就可以用push插入!

var arr1 = ['a', 'b', 'c'];var arr2 = ['1', '2', '3'];Array.prototype.push.apply(arr1, arr2);console.log(arr1);

 

转载于:https://www.cnblogs.com/niubenbit/p/4340318.html

你可能感兴趣的文章
程序存储问题
查看>>
优雅地书写回调——Promise
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
MetaWeblog API Test
查看>>
移动、尺寸改变
查看>>
c# 文件笔记
查看>>
类和结构
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
线程池的概念
查看>>