JavaScript数组的某些操作(二)
7、颠倒数组中元素的顺序(注意:不是为数组排序)——reverse方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>颠倒数组中元素的顺序</title>
<script type="text/javascript">
var intArray = [1,5,3,0];
intArray.reverse();
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>
说明:for循环依次输出:0 3 5 1;
8、数组的排序——sort方法
注意:该方法能够传递一个自己定义的排序方法的方法名,假设不传參数那么数组将按字母顺序升序排列(即依照字符编码的顺序进行升序排序),这时假设要进行数字的排序。则会出现“意想不到”的效果,看例如以下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对字母字符的排序</title>
<script type="text/javascript">
var charArray = ["a","z","g","r"];
charArray.sort();
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>
说明:for循环依次输出:a g r z。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; intset=UTF-8" />
<title>数组的排序——对数字的排序</title>
<script type="text/javascript">
var intArray = ["10", "5", "40", "25", "1000", "1"];
intArray.sort();
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>
说明:for循环依次输出:1 10 1000 25 40 5。
小结:对照上面两段代码不难发现没有參数的sort方法在对数字类型的数组排序时是起不到排序效果的(呵呵呵。有人可能会想:我假设把上面代码中数字数组元素改成“var intArray = [10, 5, 40, 25, 1000, 1];”应该就能够了吧,嗯嗯嗯,你想的非常周到,但是事实是这样也不行
),假设要实现对数字数组的排序代码应该这样写:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; intset=UTF-8" />
<title>数组的排序——对数字的排序</title>
<script type="text/javascript">
function compareTo(a,b){
return a - b;
}
var intArray = ["10", "5", "40", "25", "1000", "1"];
intArray.sort(compareTo);
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>
或
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; intset=UTF-8" />
<title>数组的排序——对数字的排序</title>
<script type="text/javascript">
var intArray = ["10", "5", "40", "25", "1000", "1"];
intArray.sort(function(a,b){return a - b;});
for(var intIndex in intArray){
console.log(intArray[intIndex]);
}
</script>
</head>
<body>
</body>
</html>
说明:for循环依次输出:1 5 10 25 40 1000;
对照较函数參数的说明:假设想依照自己定义的排序规则排序,就须要提供比較函数。该函数须要传入两个參数(常命名为 a
和 b)并返回一个用于说明这两个值的相对顺序的数字。其返回值例如以下:
1)、若 a 小于 b,在排序后的数组中 a 应该出如今 b 之前,则返回一个小于 0 的值。
2)、若 a 等于 b,则返回 0。
3)、若 a 大于 b,在排序后的数组中
a 应该出如今 b 之后,则返回一个大于 0 的值。
对于数组排序言尽于此,不知道大家有没有留意到对中文字符的排序——上面阐述了对字母和数字的排序。sort对中文的排序怎么样呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对中文字符的排序</title>
<script type="text/javascript">
var charArray = ["中","啊","家","高"];
charArray.sort();
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>
或
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对中文字符的排序</title>
<script type="text/javascript">
var charArray = ["中","啊","家","高"];
charArray.sort(function(a,b){return a - b;});
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>
说明:上面两个代码片段中的for循环输出的结果是一样的——依次输出:中 啊 家 高;
小结:从输出结果能够发现上面代码对中文的排序是错误的。那么怎样实现对中文的排序呢,请看以下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>数组的排序——对中文字符的排序</title>
<script type="text/javascript">
var charArray = ["中","啊","家","高"];
charArray.sort(function(a,b){return a.localeCompare(b);});
for(var charIndex in charArray){
console.log(charArray[charIndex]);
}
</script>
</head>
<body>
</body>
</html>
说明:上面for循环依次输出:啊 高 家 中;这才是我们想要的结果
小结:假设要实现中文字符的排序还是要借助sort方法,可是排序比較方法中使用的是localeCompare方法,该方法也会返回一个用于说明这两个值的相对顺序的数字。其返回值例如以下:
1)、若 a 小于 b。在排序后的数组中 a 应该出如今 b 之前。则返回一个小于 0 的值。
2)、若 a 等于 b,则返回 0。
3)、若 a 大于 b。在排序后的数组中 a 应该出如今 b 之后,则返回一个大于 0 的值。
9、将数组中的元素转换为以特定字符切割的字符串——join方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>将数组中的元素转换为以特定字符切割的字符串——以英文逗号分隔</title>
<script type="text/javascript">
var nameArray = ["陈洪涛","李小宁","吴思娣"];
var nameString = nameArray.join();
console.log(nameString);
</script>
</head>
<body>
</body>
</html>
说明:控制台输出的结果为:陈洪涛,李小宁,吴思娣
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>将数组中的元素转换为以特定字符切割的字符串——以中文逗号分隔</title>
<script type="text/javascript">
var nameArray = ["陈洪涛","李小宁","吴思娣"];
var nameString = nameArray.join("。");
console.log(nameString);
</script>
</head>
<body>
</body>
</html>
说明:控制台输出的结果为:陈洪涛。李小宁,吴思娣
小结:通过上面两段代码我们能够更深层此的理解join方法——假设没有为该方法传递不论什么參数,那么其默认的数组元素切割符为英文逗号。假设为该方法传递了參数。那么数组元素切割符为所传递參数指定的切割符;
JavaScript数组的某些操作(二)的更多相关文章
- JavaScript数组的某些操作(一)
在软件开发的过程中JavaScript的编程在所难免.当中对数组的操作尤为常见,这里介绍一下和JavaScript数组相关的某些操作: 1.删除并返回数组的第一个元素--shift方法: <!D ...
- #学习笔记#——JavaScript 数组部分编程(二)
2.移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 function removeWithoutCopy(arr, item) { if(!A ...
- JavaScript 数组的常用操作
JavaScript splice 方法 splice 方法用于插入.删除或替换数组的元素.语法如下: array_object.splice(start, num, element1, elemen ...
- javascript 数组的常用操作函数
join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为“,”). 与之相反的一个方法是:Stri ...
- Javascript 数组的一些操作
(1) shift 删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4, ...
- Javascript数组操作
使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...
- Javascript数组操作(转)
1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...
- JavaScript数组常用操作
前言 相信大家都用惯了jquery或者underscore等这些类库中常用的数组相关的操作,如$.isArray,_.some,_.find等等方法.这里无非是对原生js的数组操作多了一些包装. 这里 ...
- javascript数组操作汇总
javascript之数组操作 - 不悔的青春 - 博客园 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array( ...
随机推荐
- [SDOI2010] 古代猪文 (快速幂+中国剩余定理+欧拉定理+卢卡斯定理) 解题报告
题目链接:https://www.luogu.org/problemnew/show/P2480 题目背景 “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色 ...
- php7-swoole-Class 'swoole_websocket_server' not found 问题
标签(空格分隔): php 分析 nginx/apache 读取的php.uini 文件 和 cli模式的php.ini 文件不同导致的 swoole是在cli模式下运行的 或许你安装swoole扩展 ...
- PullToRefreshListView的刷新和加载的控制
pullToRefresh.setMode(Mode.BOTH); Mode.BOTH:同时支持上拉下拉 Mode.PULL_FROM_START:只支持下拉Pulling Down M ...
- 提高realm存储速率
我的数据量大约有2.5M,但是完全存储到数据库差不多用了11秒,有没有比较好的方法提高存储效率 提高realm存储速率 >> android这个答案描述的挺清楚的:http://www.g ...
- 每位 Ubuntu 18.04 用户都应该知道的快捷键
作者: Abhishek Prakash 译者: LCTT XiatianSummer 了解快捷键能够提升您的生产力.这里有一些实用的 Ubuntu 快捷键助您像专业人士一样使用 Ubuntu. 您可 ...
- 洛谷 P1501 [国家集训队]Tree II Link-Cut-Tree
Code: #include <cstdio> #include <algorithm> #include <cstring> #include <strin ...
- laravel 自定义全局函数
在 app 目录下创建一个 Helpers 目录,在此目录下创建文件.这些文件就是全局函数文件.如叫:function.php 加载此文件: 1 . 在 bootstrap/autoload.php ...
- navigator.mediaDevices.getUserMedia
navigator.mediaDevices.getUserMedia: 作用:为用户提供直接连接摄像头.麦克风的硬件设备的接口 语法: navigator.mediaDevices.getUserM ...
- NOIP2017 Day-1 模板荟萃
#include<bits/stdc++.h> #define MAXN 100005 using namespace std; int read(){ ;char c=getchar() ...
- HDU-1541 Stars 树状数组
题目链接:https://cn.vjudge.net/problem/HDU-1541 题意 天上有许多星星 现给天空一个平面坐标轴,统计每个星星的level, level是指某一颗星星的左下角(x& ...