变量的自动转换
=== 等同符:不会发生类型的自动转化!
== 等值符:会发生类型自动转化、自动匹配!
判断相等没有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. vue2.0学习教程

    十分钟上手-搭建vue开发环境(新手教程)https://www.jianshu.com/p/0c6678671635 如何在本地运行查看github上的开源项目https://www.jianshu ...

  2. 【Codeforces Round #421 (Div. 2) A】Mister B and Book Reading

    [题目链接]:http://codeforces.com/contest/820/problem/A [题意] 每天看书能看v页; 且这个v每天能增加a; 但是v有上限v1; 然后每天还必须往回看t页 ...

  3. MapReduce JOB 的输出与输出笔记。

    提高 MapReduce 价值,自定义输入和输出. 比如跳过存储到 HDFS 中这个耗时的布置. 而只是从原始数据源接受数据,或者直接将数据发送给某些处理程序. 这些处理程序在 MapReduce 作 ...

  4. 開始EEPlat之旅

    怎样開始EEPlat之旅 EEPlat分为社区版和商业版:功能上分为企业版和PaaS版.下面为社区企业版的開始之旅. 第一步:安装project,有两种:war包和代码project.(眼下googl ...

  5. vue2.0-elementUI

    main.js import Vue from 'vue' import App from './App.vue' import ElementUI from 'element-ui' import ...

  6. Redis封装值ZSet

    /// <summary> /// Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列 /// 1.带有权重的元素 ...

  7. Python(八) 正则表达式与JSON

    一.初识正则表达式 正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配 快速检索文本.实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 impor ...

  8. RMQ算法 以及UVA 11235 Frequent Values(RMQ)

    RMQ算法 简单来说,RMQ算法是给定一组数据,求取区间[l,r]内的最大或最小值. 例如一组任意数据 5 6 8 1 3 11 45 78 59 66 4,求取区间(1,8)  内的最大值.数据量小 ...

  9. ES6学习笔记(四)数值的扩展

    1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 ...

  10. angular4自定义组件非input元素实现ngModel双向数据绑定

    在angular里我们一般都是给input元素添加[(ngModel)]="value"实现数据双向绑定,如果想实现自定义的组件上实现ngModel双向数据绑定应该怎么办呐... ...