变量的自动转换
=== 等同符:不会发生类型的自动转化!
== 等值符:会发生类型自动转化、自动匹配!
判断相等没有equals()方法,只有2个等号3个等号。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type=text/javascript charset=utf-8>
/**
js数组更加类似java的容器。长度可变,元素类型也可以不同!
数组长度随时可变!随时可以修改!(length属性)
push、pop
shift、unshift
splice、slice(不改变数组)
concat(不改变数组)、join(不改变数组)、sort、reverse等
*/
var arr = new Array();//这里可以写长度也可以不写长度
var arr = [1,2,3,4,true ,'abc' , new Date()] ;
alert(arr.length);
arr.length = 5 ;//截断
alert(arr.toString()); //1,2,3,4,true /**
* push 和 pop 方法
*/
var arr = [new Date(),false] ;
var result = arr.push(1,2,true); //可以一次推多个值,push方法向数组中追加元素(返回值为新数组的长度)
alert(arr);
alert(result);
var obj = arr.pop(); //从数组的尾部删除一个元素(返回值为删除的元素)
alert(arr);
alert(obj); /**
* shift 和 unshift 方法
*/
var arr = [1,2,3, true , new Date()];
var r1 = arr.shift(); //从头部移除一个元素(返回移除的元素)
alert(arr);
alert(r1);
var r2 = arr.unshift(10,false); //从头部插入多个元素(返回新数组的长度)
alert(arr);
alert(r2); /**
* splice、slice 方法 (截取的方法)
* splice方法改变数组
* slice方法不改变数组
*/
// splice(subString()): 第一个参数 :起始位置,包头,起始位置坐标是0,
// 第二个参数 :表示截取的个数
// 第三个参数以后:表示追加的新元素个数
var arr = [1,2,3,4,5];
arr.splice(1,2,3,4,5); //从下标1开始删除2个并加入345, 134545
alert(arr);
arr.splice(1,2);//1545
arr.splice(1);//1,从1位置开始截,后面全部截取掉 // slice:
var arr = [1,2,3,4,5];
var reuslt = arr.slice(2,4);//下标从0开始
alert(reuslt); //返回截取的内容,包头不包尾,3,4
alert(arr);//1.2.3.4.5,数组还是没变 //操作数组的方法: concat join
var arr1 = [1,2,3];
var arr2 = [true , 4 , 5];
var reuslt = arr1.concat(arr2);
alert(reuslt);//1,2,3,true , 4 , 5
alert(arr1);//1,2,3
alert(arr2);//true , 4 , 5 var result = arr1.join('-'); //在每个元素之间加入内容(不操作数组本身)
alert(arr1); //1,2,3
alert(result);//1-2-3 /**
* sort排序
* reverse倒叙
*/
var arr1 = [5,2,1,4,3];
var arr2 = [10,2,4,1,7];
arr1.sort();
alert(arr1);//1,2,3,4,5
arr1.reverse();//倒叙放置,不是排序
alert(arr1);//34125
arr2.sort();
alert(arr2);//字符串比较,1 10 2 4 7,所以要写自定义比较函数, function compare(value1 , value2){
if(value1 < value2){
return -1 ;
} else if(value1 > value2){
return 1 ; //返回正数交换value1、value2位置
} else {
return 0 ;
}
}
arr2.sort(compare);
alert(arr2);//124710
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type=text/javascript charset=utf-8>
/*位置方法:indexOf lastIndexOf
迭代方法:every filter forEach some map
缩小方法:reduce reduceRight */ var arr = [1,2,3,4,5,4,3,2,1];
// 查找返回索引位置
var index = arr.indexOf(4);//3,只找一次,
// 第一个参数表示起始位置 第二个参数还是值
var index = arr.indexOf(4,4);//5
//他们查找数组比较的时候 '==='
// lastIndexOf
var index = arr.lastIndexOf(2);//7 //5个新加迭代的方法
//every :对于数组每一个元素进行一个函数的运行 如果都返回true 最后则返回true 如果有一个返回false最后结果则返回false
var result = arr.every(function(item , index , array){
return item > 2 ;//每项都大于2
});
alert(result); //filter :对于数组的每一个元素进行一个函数的运行 给定的函数去执行 把过滤后的结果返回
var result = arr.filter(function(item , index , array){
return item > 2 ;
});
alert(result); //forEach :循环数组每一项的值 并执行一个方法
arr.forEach(function(item, index, array){
alert(item);
}); //map 对于数组的每一个元素进行一个函数的运行 可以经过函数执行完毕后 把新的结果返回
var result = arr.map(function(item, index, array){
return item*2;
});
alert(result);//2,4,6,8,10,8,6,4,2 //some :对于数组每一个元素进行一个函数的运行 如果有一项返回true 最后则返回true 如果每一项都返回false最后结果则返回false
var result = arr.some(function(item, index, array){
return item >=5 ;
});
alert(result); //reduce reduceRight
//遍历的起始位置不同
//前一个值 , 当前值 , 索引位置 , array
var result = arr.reduce(function(prev , cur , index , array){
return prev + cur ;
});
alert(result);//25
var result = arr.reduceRight(function(prev , cur , index , array){
return prev + cur ;
});
alert(result);//25
</script>
</head>
<body>
</body>
</html>

js03 数组的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  4. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  5. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  6. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  7. js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

    题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...

  8. javascript数组查重方法总结

    文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...

  9. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

随机推荐

  1. AP设备漫游阈值设置

    在多个AP部署的场景下,默认情况下,手持移动设备(如PDA.手机)信号弱到断掉时才切换AP,无线信号很弱的情况下网络是非常的不稳定的,因此我们需要配置AP设备的漫游阈值(RSSI阈值),以便连接的无线 ...

  2. [递推+dfs]ZOJ 3436. July Number

    题目大意: 将一个数字的相邻两位的差(的绝对值)组成一个新的数字.不断反复.假设最后得到7,就称这个数为July Number,比方9024 – 922 – 70 – 7. 题目要求1e9范围内给定区 ...

  3. jfinal文件上传与下载

    import com.alibaba.fastjson.JSONObject; import com.jfinal.core.Controller; import com.jfinal.ext.kit ...

  4. vim 基础学习之文件跳转

    1. ''-当前文件上次跳转之前的位置2. '.-当前文件上次修改的位置,只要是发生了可能导致变化的命令操作就会被标记,哪怕实际结果没有变化3. '^-当前文件上次插入的位置,只要是发生了插入操作命令 ...

  5. Unity(IoC)

    一.什么是IoC? IoC(Inversion of Control,控制反转)又称“依赖注入”(Dependence Injection,DI). 控制反转就是创建对象的权利由开发人员控制,转为由容 ...

  6. Redis封装之List

    /// <summary> /// Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// Redis内部的很多实现,包括发 ...

  7. Conventions and patterns for multi-platform development

    For Developers‎ > ‎Design Documents‎ > ‎ Conventions and patterns for multi-platform developme ...

  8. 开启mysql远程服务

    1.在开始里输入远程,选择允许从这台机器访问 2.选择第二个开启 3. 打开cmd, 进入mysql中更改mysql数据库下的user表,中的root用户的Host 为 ‘%’use mysql:up ...

  9. 今日SGU 5.18

    SGU 125 题意:给你一个数组b[i][j],表示i,j的四周有多少个数字大于它的,问你能不能构造出一个a矩形 收获:dfs  + 剪枝 一行一行的dfs,然后第一行去枚举0-9,下一行判断当前选 ...

  10. SpringBoot 整合 Mybatis 和 Mysql (详细版)

    结构如下 1.引入相关依赖 <!--mysql--><dependency> <groupId>mysql</groupId> <artifact ...