【笔记】数组array

数组是一种特殊的对象,他与其他对象的真正区别是在原型链中是否存在Arra.prototype。

可以使用【内存图】来分析一个对象或变量的具体结构:


JS中分为标准库的非标准库,其中标准库有Object、String、Number、Boolean、Function。


基本类型在创建时加new操作符会被转换为包含proto的对象,引用类型(对象)是否加new没有影响。


数组中常用的API

.sort() .filter() .map() .reduce() .join() .concat() 用法举例:

var students = ['小明','小红','小花'] var scores = { 小明: 59, 小红: 99, 小花: 80 } students.sort(???)

使 students 按分数的高低从大到小排列

students.sort(function(x,y){return scores[y] - scores[x]})


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(value => Math.pow(value,2))


var a = [1,2,3,4,5,6,7,8,9]
a.reduce(???,???)
计算所有奇数的和

a.reduce(function(sum,n){if(n%2 == 1) {sum+n}return sum},0)