javascript数组问题

vara=newArray("a","b","c")现在知道了数组元素b,但是不知道b在数组的低级位,怎么才能知道b在数组的第几位(个)呢?vara=newArray("... var a=new Array("a","b","c")
现在知道了数组元素b,但是不知道b在数组的低级位,怎么才能知道b在数组的第几位(个)呢?
var a=new Array("a","b","c")
document.write(a[1])
运行结果是b.怎么才能知道b排在第2个位置呢
展开
 我来答
gua331921839
2009-07-25 · TA获得超过204个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:110万
展开全部
转载:
----------------------------!一!----------------------------
1. 往数组裏面加值. 可以像你代码裏那样,通过索引直接赋值. 索引大小超过了目前数组的长度也没关系, 数组会自动扩大到给定索引的长度 + 1. 或者用数组的Push方法,将一个新值加到数组的尾部..
var ary = new Array();
ary.push("a");
ary.push("b");
还可以这麼用:
ary[ary.length] = "c";
ary[ary.length] = "d";
这个用法也是把值加到数组的末尾,原理吗. 你自己考虑考虑 ,上面其实提到了.
2. 2楼的写法很准确..
不过实作的时候, 总感觉那样写的代码太多了. 呵呵 , 我这人很懒,做东西的时候,能少敲代码就少敲. 给你一个我在程式裏常用的方法:
<html>
<head>
<script language="javascript" type="text/javascript">
function window_load(){
var ary = new Array();

ary[ary.length] = "a";
ary[ary.length] = "b";
ary[ary.length] = "c";
ary[ary.length] = "d";

alert(("," + ary.join(",") + ",").indexOf(",d,")==-1?"d 不存在":"d 存在")
}
</script>
</head>
<body onload="window_load();">
</body>
</html>
这种用法的原理就是先把数组转成字串,然后用String 的indexOf方法做判断..

另外, 如果项目裏很多地方都会用到这样的方法, 那就自己动手给Array类扩展一个方法,让这个方法专门来实现这个查找功能..
<html>
<head>
<script language="javascript" type="text/javascript">
//给Array类添加一个contains方法,用来判断数组中是否包含特定的值
Array.prototype.contains = function (value){
var chr = String.fromCharCode(5);
return (chr + this.join(chr) + chr).indexOf(chr + value + chr) == -1?false:true;
}
function window_load(){
var ary = new Array();
ary[ary.length] = "a";
ary[ary.length] = "b";
ary[ary.length] = "c";
ary[ary.length] = "d";

if(ary.contains("d")){
alert("d 存在");
}else{
alert("d 不存在");
}
}
</script>
</head>
<body onload="window_load();">

</body>
</html>

----------------------------!二!----------------------------
<script>

function JS_cruel_search(data,key)
{
re = new RegExp(key,[""])
return (data.toString().replace(re,"┢").replace(/[^,┢]/g,"")).indexOf("┢")
}

function show()
{p=document.getElementById('DataWord').value.split(",")
key=keyWord.value
result=JS_cruel_search(p,key)
if(result>-1){alert("“"+key+"”就在第"+(result+1)+"个位置上。")}
else{alert("没找到!")}
}
</script>
Data:<input name=DataWord id="DataWord" readonly value="就在,你的,目光,尽头,,懵懂,的天,使单,纯如,旧,挣,扎着,不肯,涉入,俗流,,鸿鹄,借走,了他,的翅,膀,可,有谁,能助,他,飞翔?" size=120>
<p>key:<input name=keyWord readonly value="鸿鹄">
<p><button onclick=show()>查找</button>
韦涵涵
2009-07-24 · TA获得超过3892个赞
知道大有可为答主
回答量:1034
采纳率:100%
帮助的人:1520万
展开全部
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<script type="text/javascript">
function test()
{
var a=new Array("a","b","c")
var exist=false;
var pos=-1;
for(var i=0;i<a.length;i++)
{
if(a[i]=="b")
{
exist=true;
pos=i;
break;
}
}
if(exist)
{
document.write(pos);
}
else
{
alert('不存在');
}

}
</script>
<title>按钮测试</title>
</head>
<body>
<script>test();</script>
</body>
</html>

好了。。。楼主试一下吧。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狄十肆Bp
2009-07-24 · TA获得超过194个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:81.8万
展开全部
你可以用for循环来找出来啊,然后进行数组的下标比较值,值相同,则这个下标就是第 下标+1 位啊,

var diJiWei=0;
for(int i=0;i<a.length;i++){

if(a[i]=="b"){
diJiWei=i+1;//索引要加1
}

}
document.write(diJiWei);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大刀砍向东洋猪
2009-07-24 · TA获得超过482个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:66.8万
展开全部
遍历数组:

function search(date,key){
var j = date.length;
for (var i = 0;i < j;i+){
if (date[i] == key){
return i;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tale12
2009-07-24 · TA获得超过551个赞
知道小有建树答主
回答量:1158
采纳率:0%
帮助的人:720万
展开全部
下标从0开始,你自己数嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式