变量的自动转换
=== 等同符:不会发生类型的自动转化!
== 等值符:会发生类型自动转化、自动匹配!
判断相等没有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. 3D打印技术之切片引擎(6)

    [此系列文章基于熔融沉积( fused depostion modeling, FDM )成形工艺] 这一篇文章说一下填充算法中的网格填充.网格填充在现有的较为成熟的引擎中是非常普遍的:skeinfo ...

  2. Codeforces Round #313 C. Gerald&#39;s Hexagon(放三角形)

    C. Gerald's Hexagon time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  3. Android 中图能够用到的图片处理类 BitmapUtils

    Android在实际开发中非常多时候都要对图片进行一定的处理,这里总结的BitmapUtils 类包含一下几个功能: 1.Android图片倒影, 2.Android图片模糊处理, 3.Android ...

  4. TFRecord —— tensorflow 下的统一数据存储格式

    tensorflow 提供了统一的数据存储格式,即 TFRecord(record 表示记录),以提高程序的可扩展性,当数据来源十分复杂时,仍能有效记录输入数据中的信息. 1. tfrecord 使用 ...

  5. 机器学习(三) Jupyter Notebook, numpy和matplotlib的详细使用 (下)

    七.Numpy中的矩阵运算 八.Numpy中的聚合运算 九.Numpy中的arg运算 十.Numpy中的比较和Fancy Indexing 十一.Matplotlib数据可视化基础 十二.数据加载和简 ...

  6. 微信、QQ中app的下载问题

    最近在做一个项目,有一项功能是从微信中的分享页或者产品推广页面中下载app:在微信中直接下载app时微信是“拒绝”的,所以一般的做法是点击下载按钮弹出遮罩层,提示在浏览器中打开,然后进入外部浏览器,再 ...

  7. 浅述html5和web app

    题外话:最近跟不少产品解释技术术语,比如脚本.数据库.H5等等,我一般会把他们当成稍微了解这些技术的人,用专业的语言描述一遍,然后用通俗的语言解释一遍,最后举例子解释一遍. 肯定有人问,你把流程反过来 ...

  8. 如何修改Web.Config里面的值

    0.先添加 <add key="MAXNUM" value="6" /> 1.读取值 string maxNum = ConfigurationMa ...

  9. rpm2cpio---如何不安装但是获取rpm包中的文件

    如何不安装但是获取rpm包中的文件 使用工具rpm2cpio和cpio rpm2cpio xxx.rpm | cpio -idmv 参数i表示提取文件.v表示指示执行进程,d和make-directo ...

  10. 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试

    原文:在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载.使用.重新发布, ...