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

本文介绍了数组的基本操作方法,包括连接、筛选、迭代等实用技巧。同时深入探讨了排序和搜索的具体应用,帮助读者掌握高效的数据处理技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

数组方法

方法名描述
concat连接2个或更多数组,并返回结果
every对数组中的每一项运行给定函数,如果每一项都返回true,则返回ture
filter对数组中的每一项运行给定函数,返回ture的项组成的数组
forEach对数组中的每一项运行给定函数,无返回值
jion数组转字符串
indexOf查找数组元素,找到返回索引,没有找到则返回-1
lastIndexOf查找数组元素的索引里最大的值
map对数组中的每一项运行给定函数,返回函数调用的结果组成的数组
reverse颠倒数组
slice截取数组
some对数组中的每一项运行给定函数,如果任一项都返回true,则返回ture
sort按字母顺序排序,可传入排序方法函数
toString将数组作为字符串返回
valueOf同toString
reduce4个参数的函数作为参数 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)); //9
    console.log(numbers.indexOf(100)); //-1
    numbers.push(10);
    console.log(numbers.lastIndexOf(10)); //15
    console.log(numbers.lastIndexOf(100)); //-1
  • 输出数组为字符串

    jion、toString


位操作符

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

bool转换

数值类型布尔值
undefinedfalse
nullfalse
truetrue
falsefalse
数字0、NaN为false 其它为真
字符串空字符串为false
对象true

原型

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值