临潮txt全集下载:javascript中数组的问题

来源:百度文库 编辑:高校问答 时间:2024/05/06 07:38:01
<script type="text/javascript">
<!--
var testArray=['df', 'rtr', 'wy', 'dafd', 'dfs', 'wefa', 'tyr', 'rty', 'rty', 'ryt', 'afds', 'wer', 'te'];
testArray.sort(function(a,b){return a.indexOf('a')==-1?1:-1;});
alert(testArray);
//-->
</script>
以上的代码中是可以给数组顺序的,那么
testArray.sort(function(a,b){return a.indexOf('a')==-1?1:-1;});
中的
-1?1:-1;
是什么意思

应该这样看
(a.indexOf('a')==-1)?1:-1

等于
if (a.indexOf('a')==-1){1}else{-1}


var a=1;
var b;
b=a==1?2:3

等介于
if (a==1)
b=2
else
b=3

以下是参考

条件(三目)运算符 (?:)
根据条件执行两个语句中的其中一个。

test ? 语句1 : 语句2

参数
test

任何 Boolean 表达式。

语句1

当 test 是 true 时执行的语句。可以是复合语句。

语句2

当 test 是 false 时执行的语句。可以是复合语句。

说明
?: 运算符是 if...else 语句的快捷方式。它通常被用作较大表达式的一部分,而在此处使用 if...else 语句是不协调的。例如:

var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
在该例子中,如果是 6pm 以后,则创建一个包含 "Good evening." 的字符串。使用 if...else 语句的等效代码如下:

var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";