JS数组基础

定义

  1. 字面量:var arr=[];
  2. 构造函数:var arr=new Array();

任意数据类型,数组的长度可变可指定arr.length=6;

赋值

  1. 定义时赋值:var arr=[100,200,...];
  2. 通过索引下标赋值:arr[0]='hello';arr[3]='world';

var arr=new Array(10);//一个整型,新建指定长度的空数组
var arr=new Array(10.1);//error 不允许传递一个浮点型的数据

访问使用
[]访问法,索引下标的使用
length=max(index)+1 max-index=length-1
遍历

  1. for(var i=0;i<=strs.length;i++) {…} i下标
  2. while(i<=strs.length){…i++;}
  3. var i=0;do{…i++;}while(i<=strs.length);
  4. for(var i in strs){…} 自己进行迭代、判断结束

栈 队列


  1. push() 可接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度
    pop()从数组的末尾移除最后一项,减少数组的length值,返回移除的项
  2. 队列:
    shift() 移除数组中的第一个项并且返回该项,同时将数组的长度减一。
    unshift() 在数组的前端添加任意个项,并返回新数组的长度。
var arr=[];
arr.push(100,200);
arr.unshift('hello','world');
console.log(arr,arr.length);
//hello world 100 200 4
console.log(arr.pop());//200
console.log(arr.shift());//hello
console.log(arr,arr.length);//world 100 2

数据类型检测

  1. typeof 判断当前变量数据类型
var arr=[];
console.log(typeof arr);//object
  1. instanceof 检查一个对象是否是一个构造函数的实例 ,小–>大
    语法:对象 instanceof 构造函数
console.log(arr instanceof Array);//true
console.log(arr instanceof String);//false
console.log(arr instanceof Object);//true
  1. isPrototypeOf 当前变量是该函数原型的子孙后代吗 大–>小
console.log(Array.prototype.isPrototypeOf(arr));//true
console.log(Number.prototype.isPrototypeOf(arr));//false
  1. Array.isArray 是否为数组类型
console.log(Array.isArray(arr));//true
console.log(Array.isArray(new Array()));//true
console.log(Array.isArray('abc'));//false
console.log(Array.isArray(null));//false

数组中API函数功能总结

函数的名称功能传参返回值执行环境对象
push()数组末尾添加元素任意类型参数新数组的长度有影响
pop()删除数组末尾一个元素移除的项有影响
shift()删除数组开头的一个元素移除的项有影响
unshift()数组开头添加元素任意类型任意多个新数组的长度有影响
splice()删除、新增、插入、替换至少是两个参数,index_start(可正可负),count,新增的数据项s删除的数据项有影响
sort()数组元素排序默认排序无参,自定义排序参数为比较函数,比较函数有两个参数排序后的数组有影响
reverse()反转数组中的元素反转后的数组有影响
Array.isArray()判断是否为数组类型当前变量ture/false没影响
join()数组序列化可以是指定的分隔符以指定分隔符分隔字符串的形式返回数组没影响
toString()数组序列化以逗号分隔字符串的形式返回数组没影响
concat()数组的一层拼接任意数据类型,任意多个拼接后的新数组没影响
slice()截取数组的一部分[index_start,index_end)截取的部分没影响
split()将一个字符串分割成字符串数组(从该参数的地方分割(必需),数组的最大长度(可选))新数组没影响
indexOf(),lastIndexOf()查找数据项在数组中的索引下标数据项,起始索引下标(默认不写=0)存在返回索引下标,不存在返回-1没影响
every()对每一个数据项执行函数,都满足要求返回true,否则返回false函数作为参数
Fcname(item,index,arr){return bool;}
true/false没影响
some()对每一个数据项执行函数,有一个满足要求的就返回true,所有的都不满足要求返回false函数作为参数
Fcname(item,index,arr){return bool;}
true/false没影响
filter()对每一个数据项执行函数,满足要求的数据项保存起来,不满足要求的就不要函数作为参数
Fcname(item,index,arr){return bool;}
满足要求的的数据项组成的数组没影响
map()一 一映射:对每一个数据项执行函数的结果进行保存函数作为参数
Fcname(item,index,arr){return xx;}
每次函数调用的结果组成的数组(映射之后的新数组)没影响
forEach()遍历函数作为参数
Fcname(value,index,arr){没有返回值}
无返回值没影响

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值