zoukankan      html  css  js  c++  java
  • 数组

    数组(Array)

    一组相同类型或者不同类型的数据的集合。

    数组的创建

    内置构造函数创建数 - new Array

    字面量创建一个数组 - [ ]

    数组的索引及length属性

    索引也叫做下标,是指一个数据在数组里面排在第几个的位置

    数组的索引,系统默认从0开始对数组项进行编号,通过数组的索引获取数组项的值或者设置数组项的值。通过length属性可以获取数组的长度

    length属性可以从数组的后面删除或者添加数组项

    数据类型

    基本类型:number string boolean null undefined

    基本类型:存储在栈内存中

    复杂类型(引用类型):object(对象)

    引用类型:地址存放在栈内存中,值是存放在堆内存

    检测数据类型:typeof

    基本类型和引用类型的赋值

    基本类型遵循值传递

    引用类型遵循值传递,传递的是地址

    for和for...in

    for循环遍历数组

    for循环无法遍历对象,因为对象是无序的,javascript引入了for...in循环,专门遍历对象

    for...in遍历对象,最好不要去遍历数组

    点操作符:访问对象的属性和方法的一种符号。点操作符后面只能跟字符串

    []操作符:访问对象的属性和方法的一种符号。中括号后面可以跟字符串和变量

    对象的属性一定是字符串,系统会自动调用toString()进行转换

    数组的方法

    实例方法 栈:后进先出

    push() 可以接收任意数量的参数,把它们逐个添

    加到数组末尾,并返回修改后数组的长度。改变原数组。

    pop() 从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。

    队列方法:先进先出

    unshift()方法能够在数组前面添加任意个项并返回新数组的长度。

    shift() 方法能够移除数组中的第一个项并返回该项,同时将数组长度减 1。

    重排序方法

    reverse() 方法会反转数组项的顺序。

    sort() 方法按字母表(unicode编码)升序排列数组项。

    如果利用sort排序数字,需要添加一个比较函数作为参数

    a-z 97-122
    A-Z 65-90
    0-9 48-57

    返回数组

    concat() 方法可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组

    应用:快速排序,数组的扁平化。

    slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数(索引位置,不包括结束位置)。参一:起始位置,参二:结束位置,返回一个新数组,不改变原数组

    splice() 方法,对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,改变原数组。参1:起始索引位置,参2:删除的长度,参数3开始:需要添加的数组项。

    join()方法,将数组转换成对应的字符串。参数就是连接符。

    indexOf/lastIndexOf(位置方法)

    返回要查找的项在数组中的索引位置,没找到的情况下返回-1。

    两个参数:参1要查找的数组项,参2(可选的)查找的起点位置的索引

    迭代方法

    迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代

    每一个方法有两个参数:参1是一个函数(回调函数) 参2(可选的) this指向

    参1是一个函数(回调函数),这个回调函数又有三个参数(数组项的值(value),数组项的索引位置(index),数组本身(array))

    every():对数组中的每一项运行给定的函数,如果该函数对数组的每一项都返回true,整个方法的结果就是true.

    some():对数组中的每一项运行给定的函数,如果该函数对数组的任意一项返回true,结果就返回true

    filter():对数组中的每一项运行给定的函数,返回该函数结果为true项组成的数组。(过滤)

    map() : 返回一个新数组(满足条件布尔值),数组中的元素为原始数组原始数组调用函数处理后的值,不会改变原数组

    forEach() : 用于调用数组的每个元素,并将元素传递给回调函数

    归并方法

    reduce() reduceRight()

    这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。每一次迭代得到的结果会作为下一次迭代的初始值

    reduce() : 从数组的第一项开始,逐个遍历到最后

    reduceRight() :从数组的最后一项开始,逐个遍历到第一项

    方法包含两个参数:参1每一项执行的函数,参2 迭代的初始值(可选的)

    每一项执行的函数里面包含四个参数(前一个值(prev),当前值(curr),数组项的索引(index),数组本身(array))

    冒泡排序

    相邻的元素两两比较,如果第一个数比第二个数大,交换位置,每一轮有一个数字排序好了。

    选择排序

    工作原理:每一次从待排序的数据中选出最小的一个元素,存放起始位置。直到全部排序完成。

    var p={
    _age:18,
    get age(){
    return this._age;
    },
    set age(val){
    this._age=val;
    }
    }
    p.age; // 18
    p.age=20; // 20
    p.age; // 20

    Object.assign() --- 合并对象

  • 相关阅读:
    写在最顶部
    新一轮的战斗。
    Codeforces Round #180
    git学习笔记
    感悟、方向、计划
    .NET (c#)序列化和反序列化
    类的序列化发送和接受
    Log4Net: TextBoxBaseAppender
    任何成功不能只靠自己一个人
    技术问题,总是在短期被高估,在长期被低估
  • 原文地址:https://www.cnblogs.com/zlf1914/p/12801714.html
Copyright © 2011-2022 走看看