美文网首页
JS基础数组与伪数组

JS基础数组与伪数组

作者: MajorDong | 来源:发表于2019-05-21 17:02 被阅读0次

1.基本用法

  • window.Array是全局函数(也是函数)
  • Array()new Array()是一样的效果
    在JS中基础类型与复杂类型不同
var a = Array(3)
var a = new Array(3) //长度为3,3个undefined 

var a = Array(3, 3)// a = [3, 3]

JS在Array上的不一致性


不一致性

数组的空位和值为undefined时,读取都是undefined
区别: 空位遍历时会被跳过,undefined不会被跳过。

2. JS中数组的本质

人类理解:就是数据的有序集合
JS理解:数组就是原型链中有Array.prototype的对象,且length动态变化。

数组

2.1 伪数组

  1. 有0,1,2,3 ... n length 这些key的对象
  2. 原型链中没有Array.prototype

目前知道的数组有

  • arguments对象
  • document.querSelectAll('div') 返回的对象
  • 字符串

3.数组的API

  • Array.prototype.forEach
    这是一个接受函数的API,该函数可有一、两个参数,最多可有三个参数
a = [1,2,3]
a.forEach(function(value, key) {})
forEach(array, function(value, key) {}))

forEach的原理和实现方法

var obj  = ['a', 'b']
obj.forEach = function(x) { // x为函数名
  for(let i = 0, i<this.length, i++) {// this指向obj 
    x(obj[i], i)
  }
}
obj.forEach(function(value, key) {
  console.log(value, key)
})
a 0
b 1
函数三个参数时
  • a.sort()
a.sort( fucntion(x, y) {
  return a[x] - a[y] // 小于零从小到大,大于零从大到小
})
  • a.join()
a = [1, 2, 3]
a.join('东东')
''1东东2得到3东东''

a.join(',') = a,join() = a+ ' '
''1, 2, 3''
  • a.concat()
var c = a.concat(b)
//复制一个数组
var b = a.concat([])
a === b //false 不同数组
  • a.map()
    map
forEach和map的区别
  • a.filter()
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

a.filter(function(value, key) {
  return value % 2 === 0 
}).map(fucntion(value) {
  return value * value
}) // (5) [4, 16, 36, 64, 100]
  • a.reduce()
    map可以用reduce表示
    filter可以用reduce表示
a = [1, 2, 3]
a.reduce(function(sum,n) {
     return sum + n  
}, 0)

// map用reduce表示
a.reduce(function(arr, n) {
  arr.push(n*2)
  return arr
}, [])
// (3) [2, 4, 6]

//filter用reduce表示
a.reduce(fucntion(arr,n) {
  if (n % 2 === 0) {
      arr.push(n)
  }
  return arr
}, [])

相关文章

  • JS基础数组与伪数组

    1.基本用法 window.Array是全局函数(也是函数) Array()与new Array()是一样的效果在...

  • JS 基础之数组与伪数组

    标准库之window.array. -window.Array 全局对象(也是函数)(1) 创建数组 注意:Arr...

  • JS基础之数组与伪数组

    数组的定义:数组(Array)是按次序排列的一组值。 在JS里:用Array构造出来的对象就是数组。 数组是一个有...

  • 伪数组

    1、伪数组特点 2、常见伪数组 3、伪数组与数组的区别 4、伪数组转成真数组

  • JavaScript 数组与伪数组简介

    JavaScript-数组与伪数组简介 本文章面向小白 数组与伪数组的概念 数组与伪数组从何而来在JavaScri...

  • Android 程序员搞 web 之 js基础(十)

    Android 程序员搞 js 之 基础(九) 一、arguments 对象伪数组 这个伪对象可以替换 函数传入的...

  • call,apply,bind的实际应用

    call,apply,bind详解传送门 求数组中的最大和最小值 将伪数组转化为数组 js中的伪数组(例如通过do...

  • JS 将伪数组转换成数组 🎄

    本文简介 点赞 + 关注 + 收藏 = 学会了 在 JS 中,伪数组 是非常常见的,它也叫 类数组。伪数组可能会给...

  • JS 将伪数组转换成数组

    本文简介 点赞 + 关注 + 收藏 = 学会了 在 JS 中,伪数组 是非常常见的,它也叫 类数组。伪数组可能会给...

  • JS基础 - 伪数组arguments

    何为伪数组 伪数组有两个特点: 具有length属性,其他属性(索引)为非负整数 但是却不具备数组的方法也就是看起...

网友评论

      本文标题:JS基础数组与伪数组

      本文链接:https://www.haomeiwen.com/subject/isakzqtx.html