javascript 如何获取元素在数组中的位置 key
vara=newArray("a","b","c","d");varf="b";怎么才能知道"b"在a中的位置,是0还是1还是2??有没有什么函数可以直接得到"b"的位置...
var a=new Array("a","b","c","d");
var f="b";
怎么才能知道"b"在a中的位置,是 0 还是 1 还是 2 ??
有没有什么函数可以直接得到"b"的位置 1 或者返回它的键名也可以。。
非常感谢大家的回答。开始只是为了图方便,可能真是没有这样的函数,如果有,它可能也得从头开始找。。。那和for就没区别了。。。
function position(value,array){
for(var i in array){
if(array[i]==value){return i;break;}
}
}
只能先这样了 展开
var f="b";
怎么才能知道"b"在a中的位置,是 0 还是 1 还是 2 ??
有没有什么函数可以直接得到"b"的位置 1 或者返回它的键名也可以。。
非常感谢大家的回答。开始只是为了图方便,可能真是没有这样的函数,如果有,它可能也得从头开始找。。。那和for就没区别了。。。
function position(value,array){
for(var i in array){
if(array[i]==value){return i;break;}
}
}
只能先这样了 展开
4个回答
展开全部
你这样存进去的是没有key的,正确的写法应该是
var a=new Array({key:'1',value:"a"},{key:'2',value:"b"},{key:'3',value:"c"},{key:'4',value:"d"});
下面写了个例题
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
function Map( ){
this.elements = new Array();
this.init = function( _e ){
this.elements = _e ;
}
this.put = function(key, value) { // 加入元素
this.elements.push({key: key, value:value});
}
this.getByValue = function( _value) { // 取出对应value
try{
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
return this.elements[i].key;
}
}
}catch(e) {
return null;
}
}
this.getByKey = function( _key) { // 取出对应key
try{
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}
}catch(e) {
return null;
}
}
}
//使用例题
var a=new Array({key:'1',value:"a"},{key:'2',value:"b"},{key:'3',value:"c"},{key:'4',value:"d"});
var value = "b";
var map = new Map();
map.init( a );
alert( map.getByValue( value ) );
//-->
</SCRIPT>
</BODY>
</HTML>
var a=new Array({key:'1',value:"a"},{key:'2',value:"b"},{key:'3',value:"c"},{key:'4',value:"d"});
下面写了个例题
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
function Map( ){
this.elements = new Array();
this.init = function( _e ){
this.elements = _e ;
}
this.put = function(key, value) { // 加入元素
this.elements.push({key: key, value:value});
}
this.getByValue = function( _value) { // 取出对应value
try{
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
return this.elements[i].key;
}
}
}catch(e) {
return null;
}
}
this.getByKey = function( _key) { // 取出对应key
try{
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}
}catch(e) {
return null;
}
}
}
//使用例题
var a=new Array({key:'1',value:"a"},{key:'2',value:"b"},{key:'3',value:"c"},{key:'4',value:"d"});
var value = "b";
var map = new Map();
map.init( a );
alert( map.getByValue( value ) );
//-->
</SCRIPT>
</BODY>
</HTML>
展开全部
为什么不用字典组件,费用数组呀,像你这种需求很适合用dictionary的
var dic = new ActiveXObject("Scripting.Dictionary");
dic.Item("YourKey") = yourOBj;
取出来的时候使用
dic.Item("YourKey");就可以了
好好看看JScript的帮助文档
var dic = new ActiveXObject("Scripting.Dictionary");
dic.Item("YourKey") = yourOBj;
取出来的时候使用
dic.Item("YourKey");就可以了
好好看看JScript的帮助文档
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用循环挨个比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该有这种函数的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询