5个false值
0 NaN '' undefined null
Array
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Arraydeveloper.mozilla.orgArray
Arraydeveloper.mozilla.org1、var a=Array(3):生成一个length:3的数组。
2、var a=Array(3,3):这里生成的是如下图:
基本的数据结构前面加上new,返回的是一个对象。不加new,返回的还是基本类型。
object,function,array前面不加new返回的是一个对象,加上一个new.返回的还是对象。
数组到底是什么?
如上图,数组和对象最大的不同在于,是他们的原型不一样,数组的原型是Array.prototype.
那对象的原型则是Object.prototype.
数组的API
a.forEach( function(x,y){
})
非常简单,首先先理解下图的式子。
上图的意思是说,一个函数它接收并执行y函数,同时又给他传入了一个参数666。
回到上图forEach函数,通过上面的知识我们了解到此函数是传过去两个参数并执行另一个函数,这里有个最重要的问题是传的两个参数到底是什么?答案就是上图数组【a,b,c】的value和key.传的是这两个参数!
所以下图这个含义很好解释forEach了,这里的意思就是首先遍历数组a,然后得到第一组value,key,当做两个参数传给里面的函数执行一次,然后得到第二组,第三组。。。。一次传进去参数并执行函数。
sort进行排序:
用sort排序:
join
concat
map
a.forEach没有返回值。
a.map有返回值。map会把最后操作的结果收集起来,形成一个新的数组。
filter
reduce
Tips
var students = ['小明','小红','小花'] var scores = { 小明: 59, 小红: 99, 小花: 80 } students.sort(???)请填写 ??? 使得 students 按分数的高低从大到小排列.
答案:function(x,y){ return scores[y]-scores[x]}
var a = [1,2,3,4,5,6,7,8,9]
a.reduce(???,???),计算所有奇数的和。
答案:a.reduce(function(arr,n){
if(n%2!===0){
arr.push(n)}
return arr},[ ]).reduce(function(sum,n){
return sum+n},0)
var a = [1,2,3,4,5,6,7,8,9]
a.filter(???).map(???) // [4,16,36,64]
- 获取所有偶数
- 得到所有偶数的平方
答案:
a.filter(function(value,key){
return value%2 === 0
})
.map(function(value,key){
return value*value
})