《javascript权威指南》学习笔记 第七章 数组

7

数组索引仅仅是对象属性名的一种特殊类型

a=new Array()

[]

a[-3.15]="i m -3.15"

"i m -3.15"

a

[]

a[-3.15]

"i m -3.15"

a[‘-3.15‘]

"i m -3.15"

a[3]=function(){ console.log(‘this is a function!‘) }

function (){ console.log(‘this is a function!‘) }

a[3]

function (){ console.log(‘this is a function!‘) }

a[3]()

this is a function!

a[‘3‘]()

7.3 稀疏数组 就是包含从0开始的不连续索引的数组。如果是稀疏数组,length属性值大于元素的个数。可以用Array()构造函数或简单的指定数组的索引值大于当前数组长度来创建稀疏数组

7.4 数组长度

数组创建后 设置数组长度 将会删除 或增加相应的元素

a = [1,2,3,4,5];

a.length = 3; //a 为 [1,2,3]

可以用Object.defineProperty()让数组的length属性变成只读,将会禁止改变数组长度

a = [1,2,3];

Object.defineProperty(a,‘length‘,{writable:false});

a.length=0; //a 不会改变

7.6 数组遍历

for()

data.foreach()

data.forEach(function(x){

console.log(x)

});

7.7 多维数组

Javascript不支持真正的多维数组,可以用数组的数组来近似。只要简单的使用两次[]操作符即可。

a=[];a[1]=[];

7.8 数组方法

Array.join() 方式将数组的所有元素转化为字符串连接在一起,返回生成后的字符串

var a=[1,2,3];

a.join() // ‘1,2,3‘

a.join(‘‘) // ‘123‘

a.join(‘ ‘)// ‘1 2 3‘

a.join(‘-‘)// ‘1-2-3‘

Array.reverse() 返回逆序数组

sort 以字母表顺序排序返回

concat() 连接本身和参数 如果参数是数组将连接数组

slice() 返回定义的数组的位置 -1代表最后一个元素

splice() 插入或删除元素

第一个参数代表从第几个元素开始,第二个参数代表删除几个  随后的是指定插入到数组中的元素  返回删除的元素 元素本身发生改变

var a = [1,2,3,4];

b = a.splice(2,1,‘a‘,‘b‘);

//b = [3]

//a=[1, 2, "a", "b", 4]

push 把元素添加到数组最后并返回数组的新长度

pop 删除元素最后一个元素并返回被删除的值

unshift 在数组的开头插入新元素 并返回新长度

shift 删除数组的第一个元素并将删除的值返回

toString 和join 不使用参数一样

toLocaleString 不懂

forEach 从头到尾遍历数组,为每个元素调用指定函数 无法终止便利

map 将调用每一个元素传给指定的函数并返回一个数组 如果是稀疏数组 也会是相同方式的稀疏数组

filter 返回的数组元素是调用的数组的一个自己  传递的函数是用来逻辑判断的 如果返回值为true或能转化为true的值 那么传递给判定函数的元素就是这个自己的成员

var a = [1,2,3,4,5,6];

a.filter(function(x){return x < 3})  // [1,2]

filter 会跳过稀疏数组中缺少的元素 返回总是稠密的 可以用它来压缩稀疏数组 a.filter(function(x){return true})

every 和 some 将元素应用指定的函数进行判定 返回布尔值

every 调用判定函数 当所有元素传递给判定函数返回true 它才会返回true

some  当有函数返回true 它返回出  所有函数返回false 则会返回false

reduce reduceRight 使用指定的函数将数组进行组合 生成单个值

var a= [1,2,3,4,5]

var sum = a.reduce(function(x,y){return x+y},0)

如果不设定第二个参数 那么 传入指定函数的前两个参数将是数组的前两个元素的值

reduceRight 和reduce工作原理一样 不同的是从数组索引的高到低处理数组

indexOf 所有真格数组中具有给定值的元素 返回找到的第一个元素的索引 第二个参数可选 是从数组中这个索引开始 没有找到返回-1 indexOf从头到尾 lastIndexOf 从后到前

找出所有匹配的元素的索引

function findall(a,x){

var results = [];

len = a.length,

pos = 0;

while(pos < len){

pos = a.indexOf(x,pos);

if (pos === -1) break;

results.push(pos);

pos = pos + 1;

}

return results;

}

7.1 数组类型

在 es5中可以这么写

Array.isArray();

instanceof Array 不可靠

var isArray = Function.isArray || function(o){

return typeof o === ‘object‘ &&

Object.prototype.toString.call(o) === ‘[object Array]‘;

};

7.12 作为数组的字符串

var s = ‘test‘;

s.charAt(0);

s[1];

时间: 2024-10-18 20:27:58

《javascript权威指南》学习笔记 第七章 数组的相关文章

css权威指南学习笔记--第七章

由于之前一直没有系统的看过css相关的书籍,导致自己css方面一直都是处于零散状态.知其然,不知其所以然.所以买了<css权威指南>.虽然比较老了,但是应该也会收获很大. 1 水平方向上 margin-left +border-left+padding-left+width+padding-right+border-right+margin-right 其中红色的是可以设置为auto,当设置为auto时,浏览器会自动计算该值.基于的原则就是 外层包裹容器的width=被包裹元素的width+p

JavaScript权威指南学习笔记之一

1.关于分号 javascript里面不强制使用分号来表示一行语句的结束,但是最好能够在写js之前,特别是在原有的js上面新增时,最好前置一个分号.避免这种情况发生:  2.JavaScript类型转换 3.关于=== ①如果类型不同则不等 ②null===null或undefined===undefined ③true===true或false===false ④NaN不等 ⑤0===0 0===-0 ⑥如果是同一个object,array,function则相等 4.关于== ①如果已经==

css权威指南学习笔记--第6章

line-height:定义文本行基线之间的距离 <p style="line-height: 20px;"> these are test words<br /> these are test words </p> 说到line-height就不能不说到行框中各个高度是怎么计算的,这里引用css权威指南中的图 文本行中的每个元素都会生成一个内容区,这由字体的大小确定.如果不存在其他因素(如line-height)那么这个内容区的高度就是行内框的高度

JavaScript权威指南读书笔记【第一章】

第一章 JavaScript概述 前端三大技能: HTML: 描述网页内容 CSS: 描述网页样式 JavaScript: 描述网页行为 特点:动态.弱类型.适合面向对象和函数式编程的风格 语法源自Java 一等函数来自Scheme 基于原型的继承来自于Self 名字和版本: JavaScript是由网景(Netscape)公司创建,“JavaScript”是Sun MicroSystem公司的注册商标,用来特指网景(Mozilla)对着门的实现. ECMAScript: 网景将这么语言作为标准

javascript权威指南学习笔记1

打开这本书,进入到javascript的世界.以前都是看各种视频,感觉什么收获也没有,反而弄得脑袋混乱,希望能够按照这本书的节奏掌握javascript这门语言,为我的前端学习打下基础. 学习前准备:web浏览器(F12用来唤醒和关闭firebug界面,ctrl+shift+j用来唤醒错误工作台,console.log()调试辅助) 本书分为4个部分:Javascript语言核心:客户端Javascript:Javascript核心参考:客户端Javascript参考.今天主要学了第一部分.主要

javascript权威指南学习笔记2

Javascript语言核心(2~12章) 第三章:类型.值.变量 1.数字: overflow(Infinity, -Infinity).underflow(+0,-0) 非数字值:它和任何值都不相等,包括自身.if(x!=x) return NAN:==>isNaN()判断是不是NaN或者字符串等 javascript的精度要注意,即(0.3-0.2)!=(0.2-0.1) Date()构造函数:月份从0开始计数,天数从1开始计数,星期天是0: 2.文本: 转义字符(牢记斜杠后面几个特殊的值

javascript 权威指南学习笔记

//通过id查找多个元素 function getElements(/*ids...*/){ var elements = {}: for(var i=0; i<arguments.length; i++){ var id = arguments[i]; var elt =document.getElementById("id"); if(elt == null) throw new Error("No element with id :" +id); ele

[权威指南]学习笔记——第5章 索引

for(i=0;i<100000;i++){     db.users.insert( {"i":i, "username":"user"+i, "age":Math.floor(Math.random()*120), "created":new Date()} );}explain()函数查看MongoDB在执行查询的过程中所做的事情,执行计划 建立索引db.users.ensureIndex({u

[权威指南]学习笔记——第6章 特殊的索引和集合

固定集合,大小固定的集合,其行为类似于循环队列,在碟式磁盘上的写入速度非常快.固定集合不能被分片,可以用于记录日志.一.创建固定集合createCollection函数db.createCollection("my_collection",{"capped":true,"size":100000,"max":100})必须指定大小,可以知道数量.固定集合创建之后,就不能改变了也可以通过convertToCapped命令实现某个