数组&对象
var arr = [1,2,3];
Array.prototype.test=function(){}
arr.name='jq'
/*
* index是number类型的,可以使用break,continue,return语句
* 可以遍历对象
*/
for (var index = 0, length = arr.length; index < length; index++) {
console.log(index); // 0, 1, 2
console.log(arr[index]); // 1, 2, 3
}
/*
* 除了遍历数组元素外,还会遍历自身可枚举属性,以及原型链上属性
* 适用于普通对象,不适合数组遍历
* 可以使用break,continue,return语句
*/ for (var index in arr) {
console.log(index); // 0, 1, 2, name, test
console.log(arr[index]); // 1, 2, 3, jq, ƒ (){}
}
/*
* 只遍历数组元素
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* 可以使用break,continue,return语句
*/ for (var item of arr) {
console.log(item); // 1, 2, 3
}
/*
* 只遍历数组元素
* 参数:item 数组元素当前值,index 数组索引,array 数组本身
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* break,continue,return语句无效
*/ arr.forEach(function(item, index, array) {
console.log(index); // 0, 1, 2
console.log(item); // 1, 2, 3
})
/*
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* break,continue,return语句无效
* 参数:item 数组元素当前值,index 数组索引,array 数组本身
*/ arr.map(function(item, index, array) {
console.log(index); // 0, 1, 2
console.log(item); // 1, 2, 3
return 0;
})
/*
* reduce 使用回调函数迭代地将数组简化为单一值
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* 参数:callback 和 初始值
* accumulator: 函数上一次调用的返回值
* item: item 数组元素当前值
*/ (1) 省略初始值,则accumulator为 arr[0], item为arr[1], index为1
arr.reduce(function(accumulator, item, index, array) {
return accumulator + item; //求数组元素和
}); 执行顺序:
1 + 2
3 + 3 (2) 有初始值,则accumulator为initValue,item为arr[0], index为0
arr.reduce(function(accumulator, item, index, array) {
return accumulator + item; //求数组元素和
}, 0); 执行顺序:
0 + 1
1 + 2
3 + 3 优点:减少数组迭代次数
/*
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* item: item 当前数组元素
*/ arr.filter(function(item, index, array) {
return (item > 1);
}) 结果:[2, 3]
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* item: item 当前数组元素
*/ arr.find(function(item, index, array) {
return (item > 1);
}) 结果:2
数组&对象的更多相关文章
- 了解JavaScript 数组对象及其方法
数组在我目前学习过的编程语言中都可以见到, 形形色色的方法也数不胜数, 不过功能都一样, 最多也就是方法名稍稍有所不同, 老外也没个准啊, 如果英语比较好的同学对于学习方法(method)来说是很快的 ...
- 简述JavaScript对象、数组对象与类数组对象
问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...
- java数组对象的浅层复制与深层复制
实际上,java中数组对象的浅层复制只是复制了对象的引用(参考),而深层复制的才是对象所代表的值.
- MongoDB学习笔记~官方驱动嵌套数组对象的更新
回到目录 对于数组对象mongodb本身是支持的,不过对于数组的更新,mongodb的Csharp驱动目前只支持一级,即你的对象里包含数组,而数组又包括数组,这表示两层,这在更新子数组时,Csharp ...
- jquery解析php通过ajax传过来的json二维数组对象
ajax获得php传过来的json二维数组对象,jquery解析 php代码: <?php $news = array( '武汉'=>array(1,2,3), '广州'=>arra ...
- Array.prototype.sort()对数组对象排序的方法
Array.prototype.sort()方法接受一个参数——Function,Function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行 ...
- MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象
返回目录 一些要说的 这是一个很有意思的题目,在KO里,有对象和数组对象两种,但这两种对象对外表现都是一个function,如果希望得到他的值,需要进行函数式调用,如ko_a(),它的结果为一个具体值 ...
- 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用
[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, con ...
- javascript数组对象排序
javascript数组对象排序 JavaScript数组内置排序函数 javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组.对象数组排序,其实用的就是原生的s ...
- JavaScript 中有关数组对象的方法
JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象 ...
随机推荐
- Codeforces Round #316 (Div. 2) B. Simple Game
思路:把n分成[1,n/2],[n/2+1,n],假设m在左区间.a=m+1,假设m在右区间,a=m-1.可是我居然忘了处理1,1这个特殊数据.被人hack了. 总结:下次一定要注意了,提交前一定要看 ...
- BZOJ 2730 矿场搭建 Tarjan求割点
思路: Tarjan求出来点双&割点 判一判就行了 //By SiriusRen #include <stack> #include <cstdio> #include ...
- MessageFormat
MessageFormat mf = new MessageFormat("{0,number,#.##}, {0,number,#.#}"); Object[] objs = { ...
- SQL函数_Floor和Celling
1 floor()函数用于获得小于或者等于数值表达式的最大整数,也就是向下取整;celling()函数用于获得大于或者等于数值表达式的最小整数,也就是向上取整: 2 floor()函数和round函数 ...
- pigofzhou的巧克力棒
Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体地,这根巧克力棒长为 n,他想将这根巧克力棒折成 n ...
- box-shadow制作各种单边,多边阴影
一.box-shadow问题探究 box-shadow 在MDN定义以及详解: box-shadow 以由逗号分隔的列表来描述一个或多个阴影效果.该属性让你可以对几乎所有元素的边框产生阴影.如果元素同 ...
- 具体解释NoSQL数据库使用实例
一.NoSQL基础知识 1.关于NoSQL 在"NoSQL"一词.实际上是一个叫Racker的同事创造的,当约翰埃文斯埃里克要组织一次活动来讨论开源的分布式数据库. 这个名称和概念 ...
- C语言之基本算法39—字符串经典操作
//字符串概念! /* ================================================================== 题目:练习字符串的 1.输入输出 ...
- js插件---datatables如何使用
js插件---datatables如何使用 一.总结 一句话总结:a.引入css和js(不要忘记css):b.js代码启动插件(里面可以用参数控制各种功能) 1.dataTables如何显示控制行(比 ...
- 61.C++文件操作实现硬盘检索
#include <iostream> #include <fstream> #include <memory> #include <cstdlib> ...