请问js如何创建一个forjs循环json数组让数组中的所有重复项删除!

当前位置: >
JavaScript中使用for循环遍历数组
时间: && 来源:服务器之家 && 投稿:root
以我几十年C,十几年C++,几年C#的功力,最近看javascript看的我high得很。因为混着看Ruby,看的我有点神经错乱了。今天说说javascript的数组和for循环,这两个家伙干到一起总有些有趣的地方。
数组很简单,声明如下:
var days = ["Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"];
于是你执行下面一句,day就等于了"Friday",没错,基数也是从0开始的。
var day = days[5];
但是如果你执行了下面这一句,是什么结果?
days[1000] = "someday";
是的,days[1000]是"someday",但是days[10]是undefined。这点要注意,因为会影响到后面的for循环。
for循环也很简单,使用方法如下:
for (var i = 0; i & days. i++) {
& if (days[i] == "Sunday" || days[i] == "Saturday" )
& else work();
轻松的说完了,现在来点复杂的。因为javascript是解释语言(除了google的V8引擎),所以循环的每次都需要读取days.length,用于判断(i
& days.length)。这个是效率比较低的,下面的会好些:
var len=days.
for (var i = 0; i & i++) {
& if (days[i] == "Sunday" || days[i] == "Saturday" )
& else work();
如果对数组元素的处理顺序没关系的话,下面的也可以,虽然可读性打了折扣
for (var i =&days.length - 1; i &= 0 ; i--) {
& if (days[i] == "Sunday" || days[i] == "Saturday" )
& else work();
最后说说for in循环吧,这个和C#可是非常不一样哦,见下面的代码
for (var i in days) {
& if (days[i] == "Sunday" || days[i] == "Saturday" )
& else work();
你应该注意到了,i是下标,而不是元素本身。那他和我们写的第一段for循环有什么区别呢?这个就关系到了days[1000] =
"someday"这一句。这一句执行之后,days.length等于1001,其中从7到999,都是undefined。如果用for循环,将会遍历所有下标;如果使用for
in循环,将只会遍历0到6,和1000。
最后来一个比较高深装B加操蛋的写法,不解释了
for (var i = 0,&len=days. i & len, value =
days[i]; i++) {
& if (value&== "Sunday"
||&value&== "Saturday" ) play()
& else work();当前位置:&&
本页文章导读:
&&&&?JS把数组中相同元素组合成一个新的数组问题&&&&&&刚才一朋友问了我一个问题:arr=['1','1','1','2',,'3','4','5','5','6','6','7','8','9','9','10'];现在有一个这样规律的数组,需求是把里面相同元素组合成一个新的数组,有什么比较简便的方法不也就是说,......&&&&?firefox竟然逆天的实现javascript函数定义中设置默认值&&&&&&& &在传统的js函数定义时是不能指定默认值的,例如function test(a, b=1) {}&  这种函数体在一般浏览器的js解释引擎中都是会报SyntaxError: Unexpected token =类似的语法错误,起初我认为这......&&&&?利用Travis CI 让你的github项目持续构建(Node.js为例)&&&&&&&&&&& Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队......
&&&&&&最新IT科技资讯推荐:
[1]JS把数组中相同元素组合成一个新的数组问题
&&&&来源:&
& 发布时间:&
刚才一朋友问了我一个问题:arr=['1','1','1','2',,'3','4','5','5','6','6','7','8','9','9','10'];现在有一个这样规律的数组,需求是把里面相同元素组合成一个新的数组,有什么比较简便的方法不也就是说,最终要的结果是这样的:newArr =&[ [ "1" , "1" , "1" ] , [ "2" ] , [] , [ "3" ] , [ "4" ] , [ "5" , "5" ] , [ "6" , "6" ] , [ "7" ] , [ "8" ] , [ "9" , "9" ] , [ "10" ] ]我的方案如下:var arr=['1','1','1','2',,'3','4','5','5','6','6','7', '8','9','9','10']; var newArr = [],
tempArr = []; for(var i=0,j=arr.i&j;i++){
if(arr[i] == arr[i+1]){
tempArr.push(arr[i]);
tempArr.push(arr[i]);
newArr.push(tempArr.slice(0));
tempArr.length = 0;
} } console.log(newArr); /*[ [ "1" , "1" , "1" ] , [ "2" ] , [] , [ "3" ] , [ "4" ] ,[ "5" , "5" ] , [ "6" , "6" ] ,
[ "7" ] , [ "8" ] , [ "9" , "9" ] , [ "10" ] ]*/对此问题,大家有无更好算法,欢迎分享。本文链接
[2]firefox竟然逆天的实现javascript函数定义中设置默认值
&&&&来源:&
& 发布时间:&
& &在传统的js函数定义时是不能指定默认值的,例如function test(a, b=1) {}&  这种函数体在一般浏览器的js解释引擎中都是会报SyntaxError: Unexpected token =类似的语法错误,起初我认为这是合情合理的,但是在我更新了火狐19以后,竟然发现firefox做了一个逆天的举动,竟然支持这么做,在默认没有参数传递的过程中竟然能通过,获取的数据竟然跟我们在写php函数设置默认参数的效果一样,呵呵我不知道这是方便了开发者还是让开发者困惑;单从这点上来看难道某一天在firefox写也能轻松实现js的多态,让js成为一个真正具有面向对象语言特性的语言???本文链接
[3]利用Travis CI 让你的github项目持续构建(Node.js为例)
&&&&来源:&
& 发布时间:&
&&&&& Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了。&&&&& 下面是本人的构建历史:&&& 搭建Travis CI build,需要你有个github账号和github项目:1:用github账号登陆Travis CI.2 :在右上角你的账户名点击进入 account,在Repositories tab页点击Sync now同步你的github项目,3:选中项目将默认的off改变为on开启项目的持续集成。4:在你项目的根目录建立一个.travis.yml文件,内容为:language: node_jsnode_js:&&&&&& - 0.4&&&&&& - 0.65: 在打开你的node.js的package.json文件,确保加入script/test节点:"scripts": {& & "test": "XXXX"& },这里你可惜选择mak或者jasmine-node等node.js测试框架的测试命令。并且可以把依赖加入package的depends6:在你项目中运行npm test,确保正常工作。7: check in你的code到github,代开tracivsci界面等待其同步并运行你的build构建。&& 如果你需要将你的build构建状态放在一个显眼的位置或者项目readme,你可以在首页My Repositories中找到项目并设置中复制状态图片code,形如:[![Build Status](https://travis-ci.org/greengerong/qing.png?branch=master)](https://travis-ci.org/greengerong/qing)&&&&Travs CI 支持多中语言如ruby,java的maven,gradle,Go等请参见文档Travis Docs.&&&& 在上面提到的travis.yml文件中我们还可以加入build前后执行脚本,形如:before_script:&& &&&& - before_command_1&& &&&& - before_command_2 after_script:&& &&&& - after_command_1& &&&& - after_command_2&&& &将你的开源项目加入Travis CI队列吧,很容易让你的项目加入持续集成,持续构建队列。本文链接
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)◇本站云标签&script type=&text/javascript&&
Array.prototype.unique&& =&& function()&
&&&&& var& a& = {};//一个空的数组;
&&&&& for(var i=0;& i&this. i++)&
&&&&&&&&& if(typeof& a[this[i]]& ==& &undefined&)&
&&&&&&&&&&&&& a[this[i]]&& =&& 1;&
&&&&& this.length&& =&& 0;&
&&&&& for(var&& i&& in&& a)&
&&&&&&&&& this[this.length]&& =&&&
&&&&& return&&&
var&& a&& =&& [1,2,4,12,5,3,5,4,8,5,2,8,8,1,5];&
alert(a&& +&/n&+&& a.unique());&&
&&/script&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:174151次
积分:2591
积分:2591
排名:第7640名
原创:80篇
转载:36篇
(1)(1)(3)(7)(1)(4)(4)(1)(1)(2)(10)(1)(1)(2)(3)(25)(6)(3)(22)(11)(7)(1)

我要回帖

更多关于 js遍历数组判断值重复 的文章

 

随机推荐