专职C++

不能停止的脚步

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  142 Posts :: 7 Stories :: 134 Comments :: 0 Trackbacks

常用链接

留言簿(13)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

60天内阅读排行

#

     摘要: 前面一篇,我们写了数组的基础,在这里则会把主要的方法和应用列出来.
对于迭代方法和归并方法只是一个简化代码的作用,可能这些方法功能非常见,所以干脆默认提从了这两组方法。对于js的数组,使用起来非常方法,相比c/c++真是无与伦比…。在C++11标准后,也可以同样提供一个强大的动态数组。但是js的数组,可以存放任何元素,这个是C++不能比的,虽然可以实现,但是代价就有点大了。相对来说,现在版本的java和C#,则可以。因为java所有的都是Object…  阅读全文
posted @ 2017-03-07 18:03 冬瓜 阅读(1195) | 评论 (0)编辑 收藏

Array 类型恐怕是 ECMAScript 中最常用的类型了。而且,ECMAScript 中的数组与其他多数语<言中的数组有着相当大的区别。
虽然 ECMAScript 数组与其他语言中的数组都是数据的有序列表,但与其他语言不同的是,ECMAScript 数组的每一项可以保存
任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二位置来保存数值,用第三个位置来保存对象,以此
类推。而且,ECMAScript 数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。算是万能的容器.

JS中的数组还有很多功能,这篇先讲讲基础

创建数组

用new方法

下面是一组用new Array创建数组,实际上,也可以不用new,直接使用Array也是一样的

1: let a = new Array(); //这里创建了一个没有元素的空数组 
2: let a = new Array(10); //这里创建了元素个数为20的数组
3: let a = new Array(1,2,3,"aaaa"); //这里创建指定数组元素的数组
//等同于
1: let a = Array(); //这里创建了一个没有元素的空数组
2: let a = Array(10); //这里创建了元素个数为20的数组
3: let a = Array(1,2,3,"aaaa"); //这里创建指定数组元素的数组
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

用[]

下面是一组用[]创建数组的办法,多数用这种方法比较简洁

4:let a = []; //创建一个空数组 
5:let a=[1,2,3,"aaa"];//指定元素列表的创建数组
6:let a = [1,,2];//指定元素列表,但是会跳过若干元素创建数组 //跳过的部分为#ff0000
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

length属性

对于数组的长度,用属性length可以获得


可以通过设置该值,来改变数组的大小 
也可以能过下标设置,如

let a = [1,2,3]; 
a[10]=99;
console.log(a);
//结果为[ 1, 2, 3, , , , , , , , 99 ],也就是在没有的位置插入了undefined
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

[下标]访问

用[下标]的方式,可以访问数组的元素 
例:

let a=[3,2,1]; 
for(let i = 0; i < a.length; i++){
console.log(a[i]);
}
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

如果对数组越办访问,得到的将是undefined,

数组遍历方法:

//方法一 
let a = [1,2,3,4,5];
for(let i in a){
console.log(a[i]);
}
//方法二
for(let e of a){
console.log(e);
}
//方法三
for(let i = 0; i < a.length; i++) {
console.log(a[i]);
}
//方法四
a.forEach((e)=>{
console.log(e);
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

四个执行结果是一样的.

判断是否为数组

let a = [1,2,3,45]; 
let b = 1129;
console.log(Array.isArray(a),Array.isArray(b));
//显示为true false
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

将数组变成字符串

数组的toString,toLocaleString会生成以逗号分隔的元素列表的字符串toString会调用每个元素的toString 而toLocalString则会调用每个元素的toLocalSetring方法. 
join方法,则会以toString生成字符串,但是分隔符是参数中指定的,而不是默认的逗号

let a=[1,2,3]; 
let b = a.join("A");
//结果b="1A2A3";
let c = a.toString();
//c='1,2,3'
let d = a.toLocaleString();//d='1,2,3'
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

基础篇先到这里

posted @ 2017-03-03 14:24 冬瓜 阅读(1167) | 评论 (0)编辑 收藏

     摘要: 因为有注册到Embarcadero,所以还能常常收到Embarcadero邮件。告诉我现在是10.1.2版本了

以前还申请过免费的序列号,但是就一直没有用过。Delphi/C++Builder太大了,几十个G,看到我弱小的C盘,

只好放弃了,以前还会安装2010版本的,有空拿来做一下工具,现在都好久没有安装了。

好怀念当年的Turbo C!  阅读全文
posted @ 2017-02-28 10:31 冬瓜 阅读(1232) | 评论 (0)编辑 收藏

     摘要: cppblog人气真不行了,目前只有我和eryar两个人在发博!!!虽然暂时没有搞C++了,但是其他人呢?各位来点人气  阅读全文
posted @ 2017-02-27 19:44 冬瓜 阅读(1332) | 评论 (2)编辑 收藏

     摘要: 注:关于node-heapdump请看 使用node heapdump

基于appium源码 1.6.3 运行,发现运行一段时间后,会出现内存溢出.
用node-heapdump生成heap快照 发现多了很多字符串对象:内容如下  阅读全文
posted @ 2017-02-23 20:35 冬瓜 阅读(1179) | 评论 (0)编辑 收藏

     摘要: 在使用appium的过程中,发现有内存泄露,最后就process out of memory了,就挂了
网上用使用增加运行内存的方式(还是抗不住),没办法,就只好找出内存泄露的地方了
对node.js很多文章,都是说用memwatch,结果发现,这个是一个死项目,有四年没有更新过了,在现有的环境下,是没有办法编译的。
然后又有一个memwatch-next,顾名思义,就是memwatch的下一个版本,结果是果然也可以编译,一些事件也支持,但是要headdump后要end后,就挂了。
国内,用百度,你一万年都别想解决问题,估计找成人不宜的东西,百度世界第一名,google也不比过百度。  阅读全文
posted @ 2017-02-23 14:28 冬瓜 阅读(879) | 评论 (0)编辑 收藏

     摘要: 这里是基于node的xmldom上扩展的工具,在使用appium的时候,常常需要用source功能来分析当前上下文,所以扩展了若干函数,用于分析。这些代码是基于node 6.9.x JavaScript ES6语法实现。(关于如何在node使用ES6的语法,请参考我的前文:js笔记四:node 6.9.x for gulp完整配置过程)完成代码如下:xml_utils.jsCo...  阅读全文
posted @ 2017-02-20 14:31 冬瓜 阅读(800) | 评论 (0)编辑 收藏

     摘要: 在node下,需要常常用目录的多级操作,所以用博客做一个记录  阅读全文
posted @ 2017-02-14 15:09 冬瓜 阅读(1504) | 评论 (0)编辑 收藏

     摘要: 这世界上已经有很多开发工具了。现在基于node.js上开发,对了了一下:visual studio 2015+ntvs ,webStorm,Atom,Sublime,editplus,notepad++和vscode,最终选择了vscode。
vs2015太大了,不是跨平台,ntvs这个插件对node.js和js支持还不够好。
webStorm也是一个非常不错的,相对vscode,还是有点大,重点它是收费的。  阅读全文
posted @ 2017-02-10 14:50 冬瓜 阅读(1306) | 评论 (0)编辑 收藏

今天用新手机,运行appium 1.6.3 测试,发现日志打印如下错误:
[debug] [ADB] Creating ADB subprocess with args: ["-P",5037,"-s","xxxxxxxxxxx","shell","uiautomator","runtest","AppiumBootstrap.jar","-c","io.appium.android.bootstrap.Bootstrap","-e","pkg","com.tencent.mm","-e","disableAndroidWatchers",false,"-e","acceptSslCerts",false]
[UiAutomator] UiAutomator exited unexpectedly with code 0, signal null
仔细看日志发现
,发现/data/local/tmp缺少AppiumBootstrap.jar
然后在appium的node_module目录下面的appium-android-bootstrap\bootstrap\bin找到AppiumBootstrap.jar,然后复制到/data/local/tmp就可以,然后再运行,测试OK


posted @ 2017-02-08 14:39 冬瓜 阅读(1024) | 评论 (0)编辑 收藏

仅列出标题
共15页: 1 2 3 4 5 6 7 8 9 Last