我是靠谱客的博主 欢呼铅笔,最近开发中收集的这篇文章主要介绍javaScript数组方法实现原理浅析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数组 reverse() 方法

定义和用法

  • reverse() 方法用于颠倒数组中元素的顺序。

语法

  • array.reverse()

说明

  • 该方法会改变原来的数组,返回值为改变后的数组。

现在简单实现reverse()方法的原理


Array.prototype.reverseNew = function () {
//先创建一个新数组
var arr = [];
//获取原数组的长度
var len = this.length;
//将原数组倒序的方式赋值给新数组,循环次数为原数组的长度-1,因为索引是从0开始的所以需要-1。
for (var i = len - 1; i >= 0; i--) {
arr.push(this[i]);
}
//通过循环将原数组的数据改为新数组的数据
for (var j = 0; j < arr.length; j++) {
this[j] = arr[j];
}
// 将倒序好的原数组返回
return this;
}
var arr = [1, 2, 3, 6, 7, 8, 9];
console.log(arr.reverseNew());
//[9, 8, 7, 6, 3, 2, 1]
console.log(arr);
// [9, 8, 7, 6, 3, 2, 1]

数组 concat() 方法

定义和用法

  • concat() 方法将数多个数组或者元素合并成一个新数组并返回 ,不会修改原数组。

语法

  • array. concat(arr1,…)

参数

  • 方法的参数可以为一个元素或者数组,也可以是多个元素或者数组。

现在简单实现concat()方法的原理


Array.prototype.concatNew = function () {
//先创建一个新数组
var arr = [];
//通过循环将原数组的数据赋值给新数组
for (var j = 0; j < this.length; j++) {
arr[j] = this[j]
}
// 控制循环的次数为实参的个数
for (var k = 0; k < arguments.length; k++) {
//判断参数类型,如果为数组时
if (typeof arguments[k] == "object") {
// 将当前索引的数组的数据添加到新数组
for (var i = 0; i < arguments[k].length; i++) {
arr.push(arguments[k][i]);
}
}else{
//不是数组就将元素直接添加到新数组中
arr.push(arguments[k]);
}
}
//返回新数组
return arr;
}
var arr1 = [11, 2, 3];
var arr2 = [5, 46, 8];
var arr3 = "哈哈哈";
console.log(arr1.concatNew(arr2, arr3));
// [11, 2, 3, 5, 46, 8, "哈哈哈"]
console.log(arr1);
// [11, 2, 3]

数组 join() 方法

定义和用法

  • join() 方法用于把数组中的所有元素拼接成字符串返回 ,不会修改原数组

语法

  • array. join(“连接符”)

参数

  • 参数可选,参数为空时那么连接符默认为","。

    现在简单实现 join()方法的原理

     Array.prototype.joinNew = function () {
    // 先创建一个空字符串
    var str = "";
    // 如果有实参时连接符为实参,没有时连接符为默认为","号
    var connector = arguments[0] || ",";
    //通过循环将数组的数据和conneor(连接符)拼接在一起;
    for (var i = 0; i < this.length; i++) {
    str += this[i] + connector;
    }
    // 最后返回拼接完成好的字符串
    return str;
    }
    var arr = ["东", "南", "西", "傻"];
    console.log(arr.joinNew("瓜 "));
    // 东瓜 南瓜 西瓜 傻瓜
    console.log(arr);
    //
    ["东", "南", "西", "傻"]
    

最后

以上就是欢呼铅笔为你收集整理的javaScript数组方法实现原理浅析的全部内容,希望文章能够帮你解决javaScript数组方法实现原理浅析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部