js--数组

  1. Array()
  • var a = Array(3);
    复制代码

    以上代码会在内存中存下 length:3_proto_ 而不会存下 a[0],a[1],a[2];所以在访问

    a[0] //undefined
    复制代码
  • var b = Array(3,3)
    复制代码

    生成一个数组b,每个元素是3,length:2

  1. new Array()

    var a = new Array(3);
    var b = new Array(3,3);
    与1中产生的效果一致
    复制代码

总结

  1. String(),Number(),Boolean()
    
    不加new的时候,就是基本类型的转换,
    
    加上new ,就是生成对象
    复制代码
  2. 对象
    加不加new都是一样的
    复制代码

伪数组

原型链中没有 Array.prototype 的

arguments是伪数组

forEach

forEach是可以用于遍历数组,不能遍历对象

var a = [1,2,3,4,5];
a.forEach(function(value,index) {
    console.log(value)
    console.log(index)
})
复制代码

4.数组的一些方法

forEach
var a = ['a','b','c'];
a.forEach(function(value,index){
  console.log(value) //a,b,c
})
==========================================
map
a.map(function(value,index){
  console.log(value)// a,b,c
  console.log(index) //0,1,2
})
==========================================
filter
a.filter(function(value,index,arr){
    console.log(value)// 'a','b','c'
    console.log(index)// 0,1,2
    console.log(arr)//['a','b','c']
})
filter 不会改变原数组,它返回过滤后的新数组。
filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得callback 
返回 true 或 等价于 true 的值 的元素创建一个新数组。
callback 只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引
不会被调用。那些没有通过 callback 测试的元素会被跳过,不会被包含在新数组中。
==========================================
filter & map

var a = [1,2,3,4,5,6,7,8,9];
var b = a.filter(function(value,key) {
    return value % 2 === 0
   
}).map(function(value) {
  return value*value
  
}) //[4,16,36,64]
==========================================

reduce(最厉害,可以代替其他的)
var a = [2,3,4,5];
a.reduce(function(sum,currValue) {
    return sum + currValue
},0)
reduce接受两个参数,第一个是回调函数function(){},第二个是初始值sum = 0
这个回调函数接受两个参数,之前的sum 和当前的值 currValue,然后这个回调函数会返回一个
结果,作为下一次遍历的初始值sum




复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值