Ajax 板


LINE

※ 引述《kalapon (D桃)》之铭言: : 不知道怎麽把字串变数第一次处理的undefined消掉 : 顶多就是先宣告空字元给它 : for (var i=0,j=json_object.length;i<j;i++){ : jsonstr += json_object[i]['model']+"<br>"+json_object[i]['desc']+"<br>"; : } : 结果: : undefinedmodel-aa : desc-aa : model-bb : desc-bb : 我知道用中间加个判断是否为空值就可以,但还是想请教高手是否有更方便的方法 : 谢谢 提供一个解法,但没有更方便 囧 var test = ['test1','test2','test3','test4','test5']; var str; document.write(str); //确定目前str为undefined document.write('<br>-----<br>'); for(var i in test) str = (str||'') + test[i] + '<br>'; document.write(str); 结果: undefined ----- test1 test2 test3 test4 test5 -- 虽然可以达成需求..可是这样写反而很怪 XD --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.252.102.243
1F:推 terlin10:No给推~ 04/15 13:57
2F:推 kalapon:虽然我看不懂str||'' 可是结果是我要的,有空来试试,谢谢 04/15 20:06
3F:推 s25g5d4:还是判断式... 简单的说就是 a or b 04/15 20:18
我认为这不能算是判断式 因为其原理是利用JavaScript逻辑运算子的 && || 的特性 其运算过程是由左边的运算元开始 往右依序看"运算结果" (此指 a==5、b>5、c+d、e>>5、f&255 等等) 只要遇到"运算结果"触发可回传的状态,即回传 回传什麽?运算元的"值" 巧妙的就在这个回传球啊 || 的运算过程 每一个运算结果转换为Boolean值 (暂称此值为bool) 第一次碰到bool为true时,回传该运算元的"值" 当所有bool都是false,回传的是最右边的"值" 如果运算结果是Boolean值,或运算元资料型态是Boolean 那返回值是很直观的true或false x = 'me'=='30cm' || '乡民'== '30cm'; // x为true(误); 得到 x 为 fasle 若运算元是non-Boolean,其返回的是其"值"(value),而非Boolean值 a = false || true; b = 'food' || true; c = false || 'yo~' || 'hi~'; d = false || '' || 'kerker'; e = false || '' || 0; 上面会得到 a 为 true b 为 'food' //回传其值 c 为 'yo~' d 为 'kerker' e 为 0 //当所有运算结果逻辑上是false,最後是回传最右边的值 而 && 逻辑运算过程: 其返回是"值"或者Boolean值的原理是与||相同 不同的是,其返回的"值"来自哪一个结果 或者可以说是整个相反过来 同样,每一个运算结果转换为Boolean值 (暂称此值为bool) 当所有bool都是true,回传的是最右边的"值" 否则,回传第一次碰到bool为false的运算元的"值" a = '1' && '2' && '3'; b = '1' && '2' && false; c = 1 && 0 && true; 上面会得到 a 为 '3' b 为 false c 为 0 竟然打了一堆 简单来说 逻辑运算回传的并非其"结果",而是其"值" 会得到true和false也是因为它们即是Boolean型态的值 所以这解法顶多说是逻辑运算子和运算元做运算 并使用其回传结果而已 而non-Boolean型态转成Boolean值的规则 下面推文有提到了
4F:→ s25g5d4:在JS里 预期结果为boolean型态时 undefined会被转成false 04/15 20:19
5F:→ s25g5d4:所以str假如是undefined 就会转成false 因此会跳到||右边 04/15 20:20
6F:→ s25g5d4:的"" 04/15 20:20
7F:推 s25g5d4:不过这样有个缺点 假如str为数字0 那0将不会被输出 04/15 20:24
没错,会有这样的问题
8F:→ s25g5d4:因为0也会被转成false 所以我还是喜欢用?: 04/15 20:25
9F:→ s25g5d4:因为用?:可以用str === undefined来判断 04/15 20:25
10F:推 s25g5d4:http://jsfiddle.net/BV2JS/ 范例 04/15 20:27
11F:→ s25g5d4:另外除了0以外 任何在期待型态为boolean而产生的型态改变 04/15 20:27
12F:→ s25g5d4:情况下 只要转成false的都会产生这种情况 04/15 20:28
13F:推 s25g5d4:不过如果确定str是字串的话 只要不是空字串都不会被转成fa 04/15 20:30
14F:→ s25g5d4:lse就是了 04/15 20:30
这样做的确保险多了 不过考虑到题目本身就想找一个技巧 而非完全解 不然直接请原po给str初始值就好了
15F:→ grence:test.join('<br');//XD array不建议用 for in,不保证顺序 04/15 20:36
16F:→ grence:test.join('<br>'); 04/15 20:38
原po的array内是object
17F:→ grence:最近一个提到这件事的文章 http://goo.gl/e9zDI 04/15 20:40
18F:→ s25g5d4:本版2875 #1DYCKApq (Ajax) 就有说到... 04/15 20:41
19F:→ grence:就我看到的时间,那是第三近的…总之就是这问题很常见。 04/15 20:48
感谢两位提醒 虽然我这样回很像在挑语病 XDD 不过一方面题目没要求排序 另一方面,也要前提是必须确保顺序时,才不建议用 for in for in本身并不是问题,问题在可能被误用 容我还它一点点清白 http://stackoverflow.com/questions/500504/javascript-for-in-with-arrays 虽然这里还是讲它的issue比较多 XDD ※ 编辑: No 来自: 111.252.102.243 (04/16 00:11)
20F:推 dreamerslab:受用良多 :) 04/16 00:13
※ 编辑: No 来自: 111.252.102.243 (04/16 00:40)
21F:→ TonyQ:主要还是在於避免可能的问题。 04/16 09:03
22F:→ TonyQ:其实没什麽清不清白的问题,只是把可能会有的问题点出来而已 04/16 09:03
23F:→ TonyQ:把所有可能的影响讲清楚,让使用者自己选罗。 04/16 09:03
24F:→ TonyQ:所谓的trick,另一个角度也是双面刃。谨慎为上。XD 04/16 09:04
25F:推 tomin:b = '1' && '2' && false; //得到false 04/16 12:48
感谢更正
26F:推 kalapon:感谢and笔记先,目前就是用空字元把它蒙混过去了,至少没有 04/16 13:23
27F:→ kalapon:出现undefined就可以,user只会当作上面多了一行留白 04/16 13:24
28F:→ kalapon:我会拿这个地方好好练习各位说的方法,感恩 04/16 13:25
※ 编辑: No 来自: 111.252.102.243 (04/16 16:46)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP