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() --- 合并对象

  • 相关阅读:
    Begin Example with Override Encoded SOAP XML Serialization
    State Machine Terminology
    How to: Specify an Alternate Element Name for an XML Stream
    How to: Publish Metadata for a WCF Service.(What is the Metadata Exchange Endpoint purpose.)
    Beginning Guide With Controlling XML Serialization Using Attributes(XmlSerializaiton of Array)
    Workflow 4.0 Hosting Extensions
    What can we do in the CacheMetaData Method of Activity
    How and Why to use the System.servicemodel.MessageParameterAttribute in WCF
    How to: Begin Sample with Serialization and Deserialization an Object
    A Test WCF Service without anything of config.
  • 原文地址:https://www.cnblogs.com/zlf1914/p/12801714.html
Copyright © 2011-2022 走看看