当前位置: 首页 > 编程日记 > 正文

第九章 9.2 数组的方法(Array Methods)

注:这里只讲解一些 Array() 的最重要的方法。其他更多的参考手册。

9.2.1 join()

将所有元素转换为字符串并默认用 "," 连接。可以指定一个附加的参数来自定义分隔符:

None.gifvar a = [123];
None.gif
var s = a.join(); // s == "1,2,3"
None.gif
= a.join(""); // s == "1, 2, 3"

该方法是 String.split() 方法的逆操作。

9.2.2 reverse()

该方法把已有的数组翻转,返回一个相反次序排列的数组。注意该数组是就地操作的,而不是创建新的数组。

None.gifvar a = new Array(1,2,3);
None.gifa.reverse();
None.gif
var s = a.join(); // s == "3,2,1"

9.2.3 sort()

如果不传递任何参数,则按字母顺序排序。(如果必要,会自动把非字符串的数据临时转变为字符串以供比较)。

None.gifvar a = new Array("banana""cherry""apple");
None.gifa.sort();
None.gif
var s = a.join(""); // a == "apple, banana, cherry"

undefined 元素将被排列到最后。
可以传递一个自定义的比较函数来决定自定义的排序。该函数必须返回负数,0,正数来决定参数中的前者还是后者次序比较大,或者是相等的。例如:

None.gifvar a = [3341111222];
None.gifa.sort(); 
// 按字母顺序:1111, 222, 33, 4
None.gif
a.sort(function(a,b) { // 按数字大小:4, 33, 222, 1111
None.gif
          return a-b;
None.gif       });

9.2.4 concat()

连接数组元素。例子:

None.gifvar a = [1,2,3];
None.gifa.concat(
45); // 返回 [1,2,3,4,5]
None.gif
a.concat([4,5]); // 返回 [1,2,3,4,5]
None.gif
a.concat([4,5],[6,7]); // 返回 [1,2,3,4,5,6,7]
None.gif
a.concat(4, [5,[6,7]]); // 返回 [1,2,3,4,[6,7]]

9.2.5 slice()

返回数组的片断。(或者说子数组)。有两个参数,分别指定开始和结束的索引(不包括第二个参数索引本身)。如果只有一个参数,则返回从这个索引到最后的;如果任意一个参数为负的,则表示是从尾部向前的索引计数。比如 -1 表示最后一个,-3 表示倒数第三个。例子:
None.gifvar a = [1,2,3,4,5];
None.gifa.slice(
03); // [1,2,3];
None.gif
a.slice(3); // [4,5]
None.gif
a.slice(1,-1); // [2,3,4];
None.gif
a.slice(-3,-2); // [3]

9.2.6 splice()

接合。
用于插入或删除数组中的某些元素。该操作是就地修改的,不返回新数组。
第一个参数指定删除或插入将发生的位置。第二个参数指定将要删除的元素数目,如果省略该参数,则从第一个参数的位置到最后都会被删除。splice() 会返回被删除元素的数组。如果没有元素被删,则返回空数组。

None.gifvar a = [1,2,3,4,5,6,7,8];
None.gifa.splice(
4);    // Returns [5,6,7,8]; a is [1,2,3,4]
None.gif
a.splice(1,2);  // Returns [2,3]; a is [1,4]
None.gif
a.splice(1,1);  // Returns [4]; a is [1]

后面可以跟任意多的参数用于插入。例子:
None.gifvar a = [1,2,3,4,5];
None.gifa.splice(
2,0,'a','b');  // Returns []; a is [1,2,'a','b',3,4,5]
None.gif
a.splice(2,2,[1,2],3);  // Returns ['a','b']; a is [1,2,[1,2],3,3,4,5]
None.gif

注意和 concat() 不同的是,splice() 不能自动拆分并连接数组参数。

9.2.7 push() 和 pop()

这两个方法允许我们像操作堆栈 (stack) 一样操作数组。push() 在尾部附加一个或多个元素,并返回新的 length;pop() 操作在尾部删除一个元素,并返回该元素。
None.gifvar stack = [];       // stack: []
None.gif
stack.push(1,2);      // stack: [1,2]     Returns 2
None.gif
stack.pop(  );        // stack: [1]       Returns 2
None.gif
stack.push(3);        // stack: [1,3]     Returns 2
None.gif
stack.pop(  );        // stack: [1]       Returns 3
None.gif
stack.push([4,5]);    // stack: [1,[4,5]] Returns 2
None.gif
stack.pop(  )         // stack: [1]       Returns [4,5]
None.gif
stack.pop(  );        // stack: []        Returns 1

9.2.8 unshift() 和 shift()

这两个函数和 push() , pop() 类似,只不过他们添加或删除元素发生在数组的开始而不是最后位置。例子:

None.gifvar a = [];            // a:[]
None.gif
a.unshift(1);          // a:[1]         Returns: 1
None.gif
a.unshift(22);         // a:[22,1]      Returns: 2
None.gif
a.shift(  );           // a:[1]         Returns: 22
None.gif
a.unshift(3,[4,5]);    // a:[3,[4,5],1] Returns: 3
None.gif
a.shift(  );           // a:[[4,5],1]   Returns: 3
None.gif
a.shift(  );           // a:[1]         Returns: [4,5]
None.gif
a.shift(  );           // a:[]          Returns: 1 
注意当 unshift() 传递了多个参数的时候,这些参数是被一下子添加进去的,所以加进去后的次序和参数列表里的次序相同。

9.29 toString() 和 toLocaleString()

数组的 toString() 方法调用其中每一个元素的 toString() 然后用逗号连接他们得到结果。返回的字符串里不包含任何方括号或其他分隔符:
None.gif[1,2,3].toString(  )          // Yields '1,2,3'
None.gif
["a""b""c"].toString(  )  // Yields 'a,b,c'
None.gif
[1, [2,'c']].toString(  )     // Yields '1,2,c'

toLocaleString() 是 toString() 的本地化版本。对其中每个数组元素会调用 toLocaleString() 来转换,而且分隔符也会采用本地化的设置值。

转载于:https://www.cnblogs.com/RChen/articles/143382.html

相关文章:

HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap

http://www.importnew.com/8658.html转载于:https://www.cnblogs.com/passer1991/p/3520563.html

php7+的php-fpm参数配置,注意事项

安装php7的,如果php-fpm的这几个参数设置不当了,会导致php-fpm启动不了,nginx站点不能解析php文件,报404错误。 相关命令:centos7,启动php-fpm: systemctl start php-fpm查看php-fpm是否启动&am…

hung-yi lee_p10_分类/概率生成模型

文章目录研究背景本节目的本节要使用的例子研究过程把分类当成回归来算理想做法找到最佳函数的方法研究成果运用运用过程结果方法改进模型总结讨论为什么选择正态分布模型?关于后验概率的求法之化简与改进猜想一张图总结研究背景 本节目的 Classification:Probabi…

【跃迁之路】【495天】程序员高效学习方法论探索系列(实验阶段252-2018.06.15)...

(跃迁之路)专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长实验期2年(2017.10.06 - 2019.10.06)我将以自己为实验对象。我将开源我的学习方法,方法不断…

wpf+xml实现的一个随机生成早晚餐的小demo

话说每到吃完的时间就发愁,真的不知道该吃什么,然后就想到做一个生成吃什么的小软件,既然这个软件如此的简单,就打算用wpf开发吧,也不用数据库了,直接保存在xml中就可以了 程序整体结构如下图 首先我写了一…

CentOS报错:TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener

问题描述 原因 listener.ora中的ORACLE_HOME错了 解决 这个错误当时是和另一条指令lsnrctl start的错误一起报的,那个已解决,详细做法请各位移步我的另一篇博客 https://blog.csdn.net/weixin_44997802/article/details/109266708

c#数据结构———二叉查找树

using System;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />namespace BinaryTreeLibrary{///创建的是二叉查找树&#xff0c;没有重复的结点值///特点&#xff1a;左支树中任何值都小于父结点值&#xff0c;右结点任何值大于…

Spring事务管理只对出现运行期异常进行回滚

使用spring难免要用到spring的事务管理&#xff0c;要用事务管理又会很自然的选择声明式的事务管理&#xff0c;在spring的文档中说道&#xff0c;spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚&#xff0c;而对检查型异常则不进行回滚操作。那么什么是检查…

struts学习笔记三-国际化

在程序设计领域&#xff0c;人们把能够在无需改写有关代码的前提下&#xff0c;让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化技术。 国际化简称为 i18n&#xff0c;根据internationalization简化而来。 本地化简称为l10n&#xff0c;根据localization简化而…

TNS-01201: Listener cannot find executable /u01/oracle/bin/extproc for SID orcl Listener failed to

文章目录问题描述原因解决过程结果问题描述 原因 listener.ora文件中ORACLE_HOME的路径错了&#xff0c;导致按照这个路径找不到extproc 解决过程 首先去找ORACLE_HOME的路径 先切换为root用户&#xff08;这样查找时不会有文件夹进不去&#xff09; 输入指令 su root然后…

与技术无关的书单--你可以笑着说有些是“精神鸦片”

??? 转载于:https://www.cnblogs.com/crmhf/p/3823130.html

隐马尔科夫模型HMM(一)HMM模型

2019独角兽企业重金招聘Python工程师标准>>> 隐马尔科夫模型&#xff08;Hidden Markov Model&#xff0c;以下简称HMM&#xff09;是比较经典的机器学习模型了&#xff0c;它在语言识别&#xff0c;自然语言处理&#xff0c;模式识别等领域得到广泛的应用。当然&am…

stella forum v 2.0 的两款主题样式

stella forum v 2.0 的开发工作已经快结束啦&#xff0c;现在我正在加紧努力&#xff0c;想在本周内完成&#xff0c;因为下个星期我可能会不在学校。 下面公开一下我在做的两款主题&#xff0c;第一个是以前v1 版用的经典论坛的样式&#xff0c;而下面的第二款来自一个我很喜欢…

startup mount报错:invalid value given for the diagnostic_dest init.ora parameter

问题描述 解决思路 找到错误控制信息输出路径下的init文件 &#xff08;我的不知道为什么叫做initORCL.ora&#xff09; 将其中的ORACLE_BASE修改为正确路径 解决过程 输入指令 vi /db/app/oracle/product/11.2.0/dbs/initORCL.ora将其中三个涉及到ORACLE_BASE的地方该为正…

java的常用包

java.applet&#xff1a; 包含一些用于创建Java小应用程序的类。运行于html页面中。java.awt &#xff1a;包含一些用于编写与平台无关的图形界面&#xff08;GUI&#xff09;应用程序的类。java.io&#xff1a;包含一些用作输入输出&#xff08;I/O&#xff09;处理的类。java…

jQuery中的 $.ajax的一些方法

1. $(document).ajaxConplete(function(){}) 1.8版本之后&#xff0c;只能绑定到document元素上&#xff1b;1.8版本之前&#xff0c;可以帮到其他元素上 当$.ajax执行完成之后&#xff0c;执行该函数。如果有多个$.ajax请求&#xff0c;就会执行多次&#xff1b;如果有两个或多…

freebsd command

ps -aux netstat -m netstat 1 top pkg_info systat -vm systat -if dmesg netstat -an unix/linux指令集 (简体) (原作者: 农夫) http://www.darkcc.org/fmandarkcc/index.php 转载于:https://www.cnblogs.com/funpower/archive/2005/07/09/189198.html

hung-yi lee_p11_逻辑回归

文章目录step1 Function Setstep2 goodness of a functionstep3 Find the best functionwhy not Logistic Regression Square ErrorDiscriminative v.s. Generative结论&#xff08;判别模型的优势&#xff09;解释-生成模型为何稍逊色生成模型的优势多分类模型逻辑回归的局限…

自定义状态切换按钮

最近在做一个项目&#xff0c;一个界面的按钮UI给画成了这样&#xff08;默认状态是蓝色的然后触摸后变成灰色的&#xff09; UI效果然后本着给低版本系统APP适配的职业素养&#xff08;其实是不想画这种按钮&#xff09;&#xff0c;想让UI兄弟给将图标改成整个按钮效果的图片…

操作SQLite数据库

本文摘自&#xff1a; http://docs.blackberry.com/en/developers/deliverables/25108/Creating_and_deleting_SQLite_databases_1219776_11.jsp 创建和删除 SQLite 数据库 您可以创建临时或永久数据库。 CREATE TABLE 语句可用于创建永久&#xff08;或常规&#xff09;数据库…

刚开始Windows Mobile的开发,请大家多多关照

刚开始学习Windows Mobile的开发&#xff0c;现在正在学习WML和WAP的网站制作&#xff0c;请大家多多关照。转载于:https://www.cnblogs.com/czha2002/archive/2005/07/12/191129.html

STARTUP报错:ORA-00205: error in identifying control file, check alert log for more info

问题描述 startup nomount没有异常 startup mount则出现异常&#xff0c;说明控制文件出错

Java基础知识回顾之六 ----- IO流

前言 在上一篇文章中&#xff0c;回顾了Java的多线程。而在本篇文章中主要介绍Java IO的相关知识。 IO的介绍 什么是IO&#xff1f; IO的名称又来是Input与Output的缩写&#xff0c;也就是输入流和输出流。输入流用于从源读取数据&#xff0c;输出流用于向目标写数据。 可以从下…

选择、分组、引用,指定匹配的位置

正则表达式的语法还包括指定选择项,对子表达式分组和引用前一子表达式的特殊字符.字符| 用于分隔供选择的字符.例如: /ab|cd|ef/ 匹配的是字符串 "ab",或者是字符串 "cd",又或者 "ef". /\d{3}|[a-z]{4}/ 匹配的是要么是一个三位数,要么是四个小写…

用Graphviz来画图 1

做了一个系统&#xff0c;通过配置来完成一些简单或者复杂的产品逻辑&#xff0c; 系统投入使用以后&#xff0c; 产品人员在上面配置了不少产品&#xff0c;产品的流程都是存放在一个xml里面&#xff0c;前几天突然有个想法&#xff0c; 打算把这个流程通过图形表示出来&#…

hung-yi lee_p12_深度学习简介

文章目录三个步骤step 1fully connect feedforward network神经网络原理从非DL到DL什么变了step 2step 3backpropagation注意这是篇头重脚轻的博客。大部分都在讲step1&#xff0c;2、3是飞快过去。三个步骤 step 1 许许多多的逻辑回归&#xff08;神经元&#xff09;模型组成…

openGL学习笔记(1)——常用方法原型解释

1、初始化&#xff0c;设置背景色 void glClear(int mask) 清除缓存 实參含义&#xff1a;GL10.GL_COLOR_BUFFER_BIT 清除颜色缓存 GL10.GL_DEPTH_BUFFER_BIT 清除深度缓存 希望同时清除多个缓存&#xff0c;将实參用或&#xff08;&#xff5c;&#xff09;连接即可 void …

让VBCommenter支持自定义用户名

在使用VBCommenter生成XML格式的注释时&#xff0c;发现在<history></history>标签内的用户名是登陆系统的用户名&#xff0c;而我们的用户名一般是一些简称或其它英文名等&#xff0c;这样在注释中想记录开发人员的真实姓名就必须手工修改&#xff0c;颇不方便。是…

模拟器抓取https方法

说明&#xff1a;为了解决安卓手线上不能抓取https请求&#xff0c;以下整理通过模拟器抓取https请求方法如下&#xff1a;前置条件&#xff1a;安卓模拟器1、夜神抓包工具&#xff1a;fiddler、charles不要安装证书 第一步安装模拟器 可以按照夜神模拟器步骤省略 第二步de.rob…

hung-yi lee_p15_机器学习深层网络比浅层网络好在哪

文章目录疑问-为什么要那么多层简单解释以语音识别为例语音识别基础GMM的方法的缺陷深度学习的高明之处回到问题-为什么一层能解决还要多层从电子工程(EE)角度解释一个电路的例子日常角度解释剪窗花Deep Learning的优点适用于参数少的情况End-to-end Learning面临复杂问题疑问-…