资讯专栏INFORMATION COLUMN

JavaScript 数组

shmily / 2996人阅读

摘要:递归一个简单的阶乘递归在递归之前,该函数会被挂起,如下图数组创建数组通过操作符通过构造函数判断是否数组数组中的一些常用函数查找元素,大小写敏感,返回索引返回将数组转化为字符串将数组转化为字符串合并数组和并创建新数组起始索引长度添加新数组

递归
function factorial() {    // 一个简单的阶乘递归
    if (number == 1) {
        return number;
    } else {
        return number factorial(number - 1);
    }
}

console.log(factorial(5));

在递归之前,该函数会被挂起,如下图:

5 * factorial(4)
5 * 4 * factorial(3)
5 * 4 * 3 * factorial(2)
5 * 4 * 3 * 2 * factorial(1)
5 * 4 * 3 * 2 * 1
5 * 4 * 3 * 2
5 * 4 * 6
5 * 24
120
JavaScript 数组 创建数组
var numbers = [];    // 通过 [] 操作符

var numbers = new Array();    // 通过构造函数

Array.isArray(numbers)    // 判断是否数组
数组中的一些常用函数
.indexOf()    // 查找元素,大小写敏感,返回索引/返回-1

.join()    // 将数组转化为字符串

.toString()    // 将数组转化为字符串

A.concat(B)    // 合并数组A和B并创建新数组

.splice(起始索引,长度,添加新数组,.....,...)    // 从数组里截取一个新数组

.push()    // 将一个元素添加到末尾

.unshift()    // 将一个元素添加到开头

.pop()    // 删除数组末尾的元素

.shift()    // 删除数组的第一个元素

.splice(3, 0, 1, 2, 3)    // 从索引为3的位置开始插入1,2,3

.reverse()    // 翻转数组中的元素

.sort()    // 按字典顺序对元素进行排序

// 从小到大排序
fucntion compare(num1, num2) {
    return num1 - num2;
}

var nums = [...];
nums.sort(compare);
数组的迭代
不产生新数组的迭代
.forEach(square);    // 对数组中的每个元素使用square函数

.every(isEven)    // 若每个元素都满足isEven则返回true

.some(isEven)    // 只要有一个元素满足isEven则返回true

.reduce(add)    // 不断对累加值和后续元素调用add函数,最终返回累加值 / 链接元素

.reduceRight()    // 从右往左
生成新数组的迭代
.map(curve)    // 返回一个经过curve函数处理后的数组

.filter()    // 类似every,返回元素结果为true的新数组

function isEven(num) {
    return num % 2 == 0;
}

function isOdd(num) {
    return num % 2 != 0;
}

var nums = [];
for(i = 0; i < 10; ++i) {
    nums[i] = i+1;
}

var evens = nums.filter(isEven);    // 2 4 6 8 10
var odds = nums.filter(isOdd);        // 1 3 5 7 9
多维数组

JavaScript: The Good Parts (O"Reilly) P64

Array.matrix = function(numrows, numcols, initial) {    // 创建多位数组
    var arr = [];
    for (var i = 0; i < numrows; ++i) {
        var columns = [];
        for (var j = 0; j < numcols; ++j) {
            columns[j] = initial;
        }
    arr[i] = columns;
    }
    return arr;
}

var nums = Array.matrix(5,5,0);
var strings = Array.matrix(5,5,"");

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90070.html

相关文章

  • JavaScript专题系列文章

    摘要:专题系列共计篇,主要研究日常开发中一些功能点的实现,比如防抖节流去重类型判断拷贝最值扁平柯里递归乱序排序等,特点是研究专题之函数组合专题系列第十六篇,讲解函数组合,并且使用柯里化和函数组合实现模式需求我们需要写一个函数,输入,返回。 JavaScript 专题之从零实现 jQuery 的 extend JavaScritp 专题系列第七篇,讲解如何从零实现一个 jQuery 的 ext...

    Maxiye 评论0 收藏0
  • 数组 - Javascript语法基础 - Javascript核心

    摘要:数组创建数组数组字面量使用构造函数数组本质上是所以要判断是不是数组,需要通过判断。数组长度使用属性获取元素的个数。例如函数的对象就是这样 原文: http://pij.robinqu.me/JavaScript_Core/JavaScript_Basics/Array.html 源代码: https://github.com/RobinQu/Programing-In-...

    molyzzx 评论0 收藏0
  • Array的javascript数据结构描述

    摘要:几乎所有的编程语言都有类似的数据结构。然而的数组却略有不同。没有定义中说的那样的数据结构,作为替代。元素通过指定的分隔符进行分隔。返回该对象的源代码。把数组转换为本地数组,并返回结果。 写在前面的话: 经常看到技术博客上写的内容很详细,对于一个问题,大家的博客内容似乎都是一样的。不难发现这些技术博客已经成为各路教程的汇总地,而教程一般都是参考国外博客翻译或者直接在经典的书籍上大片抄录。...

    iOS122 评论0 收藏0
  • array数组类型

    摘要:中并没有明确的数组数据类型。创建一维数组具有以下几种方式二维数组数组是可以嵌套,这就意味着一个数组可以作为一个数组被包含在另外一个数组里面。利用这个特点,创建二维数组,即数组的数组。删除数组的最后一个元素并返回删除的元素。 Array 概述 一维数组 数组是一个有序的数据集合,可以通过数组名称和索引进行访问。JavaScript中并没有明确的数组数据类型。创建一维数组具有以下几种方式:...

    lemanli 评论0 收藏0
  • JavaScript面向对象编程——Array类型

    摘要:中并没有明确的数组数据类型。返回数组对象的原始值。专门用于筛选出数组中符合函数判断条件的元素组成的心数组。专门用于对原数组中每个元素执行相同的函数对象规定的操作。 概述 一维数组 数组是一个有序的数据集合,可以通过数组名称和索引进行访问。JavaScript中并没有明确的数组数据类型。 二维数组 数组是可以嵌套的,这就意味着一个数组可以作为一个袁旭被包含在另一个数组里面。利用JavaS...

    DirtyMind 评论0 收藏0
  • JavaScript学习总结(二)数组和对象部分

    摘要:属性是一个值或一组值以数组或对象的形式,是对象的成员。可以使用内置构造函数和创建包装对象。因此下面的代码将会使人很迷惑结果结果,此数组长度为应该尽量避免使用数组构造函数创建新数组。给数组对象添加返回数组中最大元素值的方法。 对象部分 Object类型 Object 是一个无序的集合,可以存放任意类型对象,所有其他对象都继承自这个对象。创建Object类型有两种,一种是使用new运算符,...

    Lsnsh 评论0 收藏0

发表评论

0条评论

shmily

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<