学习Javascript数据结构与算法系列笔记(一):数组

来源:互联网 发布:好用的粉底液推荐知乎 编辑:程序博客网 时间:2024/05/29 13:36

常用数据结构:数组。简要介绍数组的常用方法。

数组方法

方法名 描述 concat 连接2个或更多数组,并返回结果 every 对数组中的每一项运行给定函数,如果每一项都返回true,则返回ture filter 对数组中的每一项运行给定函数,返回ture的项组成的数组 forEach 对数组中的每一项运行给定函数,无返回值 jion 数组转字符串 indexOf 查找数组元素,找到返回索引,没有找到则返回-1 lastIndexOf 查找数组元素的索引里最大的值 map 对数组中的每一项运行给定函数,返回函数调用的结果组成的数组 reverse 颠倒数组 slice 截取数组 some 对数组中的每一项运行给定函数,如果任一项都返回true,则返回ture sort 按字母顺序排序,可传入排序方法函数 toString 将数组作为字符串返回 valueOf 同toString reduce 4个参数的函数作为参数 previousValue currentValue index array,该函数会返回一个被叠加到累加器的值
  • 迭代器函数
    every、 some、 forEach、 map、 filter、 reduce
var numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];numbers.reduce(function(pre,curr,index,arr){  return curr;})//15
  • 搜索和排序

    1. 排序

    1). sort

    var numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];numbers.sort(function(a,b){return b-a}); //逆序numbers.sort(function(a,b){return a-b}); //顺序

    2). 自定义排序

    对年龄进行顺序排序

    var friends = [   {name:'John', age: 30},   {name:'Ana', age: 20},   {name:'Chris', age: 25} ] function compareAge(a, b){   if(a.age < b.age){     return -1;   }   if(a.age > b.age){     return 1;   }   return 0; } console.log(JSON.stringify(friends.sort(compareAge)));//[{"name":"Ana","age":20},{"name":"Chris","age":25},{"name":"John","age":30}]

    3). 字符串排序

    字符串排序时是根据ASCII值进行比较的

    2. 搜索
    indexOf、 lastIndexOf

    var numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];console.log(numbers.indexOf(10)); //9console.log(numbers.indexOf(100)); //-1numbers.push(10);console.log(numbers.lastIndexOf(10)); //15console.log(numbers.lastIndexOf(100)); //-1
  • 输出数组为字符串

    jion、toString


位操作符

位操作符 描述 & 与 \ 或 ~ 非 ^ 异或 << 左移 >> 右移
console.log(5 & 1);\\ 1console.log(5 | 1);\\5console.log( ~5 ); \\-6console.log(5 ^ 1);\\4console.log(5 << 1);\\10console.log(5 >> 1);\\2

bool转换

数值类型 布尔值 undefined false null false true true false false 数字 0、NaN为false 其它为真 字符串 空字符串为false 对象 true

原型

使用原型方法可以节约内存和降低实例化的开销。最好在声明公共方法时使用基于原型的方法。生成私有方法时用在类定义时内部声明的方式,这样其他实例不会访问到这个方法。


阅读全文
1 0
原创粉丝点击