JavaScript如何根据数组的值来读取数组的下标呢?

slliang83 2006-07-18 09:07:54
假设:
a[0]=78;
a[1]=22;
a[2]=45;
a[8]=98;
a[12]=12;

如果我现在通过98这个数,怎么才能读到8这个下标呢?
...全文
1928 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
boxigroup 2006-08-19
  • 打赏
  • 举报
回复
欢迎光监点石成金网 http://www.boxigroup.com 网站提供web开发(j2ee .net asp php javascript、c#等) c/s开发(delphi、vb、vc、pb、cb等) 数据库开发(oracle、sqlserver、db2、access、mysql、Postgresql、informix)等学习资料,希望能为你解决燃眉之急 ,请把本网站加入收藏夹,以备不时查询之需 bs+cs讨论群(9638134)
WolfChaseLion 2006-08-18
  • 打赏
  • 举报
回复
这样就可以显示字符下标了
<script language=javascript>
Array.prototype.indexOf=function(v)
{
for(var i in this)
{
if(this[i]==v) return i;
}
return -1;
};

var a=[];
a[0]=78;
a[1]=22;
a[2]=45;
a["china"]=98;
a[12]=12;

alert(a.indexOf(98))

</script>
meizz 2006-08-18
  • 打赏
  • 举报
回复
用我的 indexOf 是一种解决办法,还有一法,就是预先把数据的下标与值的映射关系存放到一个对象里,要用的时候直接拿来用就是了,不过当数组发生变化的时候需要重新映射就是了:
<SCRIPT LANGUAGE="JavaScript">
<!--
var a=[];
a[0]=78;
a[1]=22;
a[2]=45;
a[8]=98;
a[12]=12;

var _mm={};
for(var i=0; i<a.length; i++) _mm[a[i]]=i;

alert(_mm["12"]);
alert(_mm["98"]);

//-->
</SCRIPT>
fancle 2006-08-18
  • 打赏
  • 举报
回复
<script language=javascript>
var a = [];
var b;
a[0]=78;
a[1]=22;
a[2]=45;
a[8]=98;
a[12]=12;

function return1()
{
for(var i=0;i<a.length;i++)
{
if(a[i]==98)
b = i;
}
return b;
}

alert(return1());
</script>
梅雪香 2006-08-17
  • 打赏
  • 举报
回复
如果需要大量这种运算,循环就不如建个表快了,代码如下

<script language="JavaScript">
<!--
var arr=[];
for(var i=0;i<20;i++)
arr[i]=i*i+1+"";

var arrHash = new Object();

for(var i=0;i<arr.length;i++)
arrHash[""+arr[i]]=i;

for(p in arrHash){
document.write("value is <font color='blue'>",p,"</font>,index is <font color='blue'>",arrHash[p],"</font><br>");
}
//-->
</script>
lingye 2006-08-17
  • 打赏
  • 举报
回复
如果下标是字符呢
meizz 2006-07-18
  • 打赏
  • 举报
回复
<script language=javascript>
Array.prototype.indexOf=function(v)
{
for(var i=0, n=this.length; i<n; i++)
{
if(this[i]==v) return i;
}
return -1;
};

var a=[];
a[0]=78;
a[1]=22;
a[2]=45;
a[8]=98;
a[12]=12;

alert(a.indexOf(98))
</script>
lantersen 2006-07-18
  • 打赏
  • 举报
回复
归楼上说的做,类似于:
function temp()
{
var temp = new Array();
for(var i=0; i<a.length; i++)
{
if (a[i] == 98 )
{
temp.push(i);
}
}
return temp;
}
slliang83 2006-07-18
  • 打赏
  • 举报
回复
遍历?怎么遍历阿?我只需要一个值嘎!~
lion98 2006-07-18
  • 打赏
  • 举报
回复
遍历
hbhbhbhbhb1021 2006-07-18
  • 打赏
  • 举报
回复
meizz(梅花雪)的直接考下来另存为.htm文件就可以运行
slliang83 2006-07-18
  • 打赏
  • 举报
回复
不行啊,运行通不过阿

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧