javascript 如何获取元素在数组中的位置 key
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 如何获取元素在数组中的位置 key相关的知识,希望对你有一定的参考价值。
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 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> 参考技术A 为什么不用字典组件,费用数组呀,像你这种需求很适合用dictionary的
var dic = new ActiveXObject("Scripting.Dictionary");
dic.Item("YourKey") = yourOBj;
取出来的时候使用
dic.Item("YourKey");就可以了
好好看看JScript的帮助文档 参考技术B 用循环挨个比较 参考技术C 应该有这种函数的
JavaScript 重点笔记
JavaScript 重点笔记
## 数组 // 必须掌握 - arr.length:获取数组元素的长度 - arr.splice(起始位置,长度):从数组中添加或删除元素。 - arr.indexOf():获取指定元素在数组中的位置,不存在返回-1 - arr.sort([函数:排序规则]):排序(默认采用字符串顺序排序,数字排序则需要通过自定义函数实现) - arr.join(str):将arr以指定字符连接成字符串 // 次重点 - arr.push():在数组末尾推入指定元素 - arr.pop():弹出并返回数组末尾元素 - arr.shift():弹出并返回数组第一个元素 - arr.unshift():在数组开头处添加指定元素 // 都必须理解,之后复习,我们能够马上 捡起来 - arr.concat():合并数组 - arr.reverse():数组元素顺序反转 - arr.lastIndexOf():获取指定元素最后一次出现的位置,不存在返回-1 - arr.slice(起始位置,结束位置):获取数组中指定的片段(不包含结束位置) - arr.every():检测数值元素的每个元素是否都符合条件。 - arr.map():通过指定函数处理数组的每个元素,并返回处理后的数组。 - arr.filter():检测数值元素,并返回符合条件所有元素的数组。 - arr.some():检测数组元素中是否有元素符合指定条件。 ## 正则 正则帮助我们 验证 字符是否合法 var reg = /表达式/模式修正符; var reg = new RegExp(表达式,模式修正符); 1.元字符 - [0-9]:任意一个数字 - [a-z]:任意一个小写字母 - [x|y]:匹配x或者y(匹配其中的一个) - [^0-9]:匹配一个任意非数字 - [\d]:任意一个数字 - [\s]:任意一个空白字符(\r\n\t) - [\w]:约等于A-Za-z0-9_ - ^[a-z]{6,12}$:必须是6-12位的字母 2.量词 - * 相当于{0,} 任意数量 - + 相当于{1,} 至少一个 - ? 相当于{0,1} 至多一个 - {6,18} 3. 模式修正符 - i:不区分大小写 - g:执行全局匹配
数组 var arr = []; var arr = new Array(); arr.length:数组元素的个数 arr.splice(start,length):删除数组中从start位置开始的length个元素 arr.join(字符):将数组元素以指定字符连接 arr.indexOf(值):判断值是否在arr数组中,如果在返回索引值,不在返回-1 arr.sort():排序(默认是以字符串顺序排序) 13 < 8 arr.sort(function(a,b){return a-b;}):排序(以数字顺序排序) 13 > 8 arr.slice(start,end):获取数组中从start位置开始,到end位置结束(不包含)的元素 正则 var reg = /正则表达式/模式修正符; var reg = new RegExp(表达式,修正符) 三要素:修正符 元字符 量词 修正符 g:全局匹配 i:忽略大小写(验证码,网站上的一些关键字不区分大小写) 元字符 [0-9]:任意一个数字 [a-z]:任意一个小写字母 [A-Z]:任意一个大写字母 [A-z]:任意一个字母 [abcd]:abcd中任意一个 [^abcd]:除abcd之外的任意一个 [^0-9]:除数字之外的任意一个字符 量词: {1,3}:至少一个,至多3个 {1,}:至少一个 {1}:只能一个 *:任意数量 +:至少一个 ?:至多一个 ():将括起来的内容作为一个整体 ^表达式$:完全限制了字符串必须全部符合正则的要求 .:任意一个字符 .*:任意数量的任意字符(不包含\n\r) .*?:拒绝贪婪匹配 red|blue|green:或者red或者blue或者green \r:回车 \n:换行 \t:tab制表符 正则表达式的原则:将所有可能的值全部罗列出来,然后进行相关的正则书写 元字符 \w: \W: reg.test(str):检验str是否符合reg的要求,符合返回true,不符合返回false 补充内容 inp.value inp.value = ‘123456‘ inp.checked inp.checked = true 新的内容 - 事件 JS = ECMAScript + BOM + DOM JS是一门基于对象和事件驱动的弱类型脚本语言 基于对象:万物皆对象(属性+方法) 事件驱动:当满足某一个条件的时候,函数自动执行 btn.onclick = function(){}:当点击的时候,函数自动执行 inp.onblur = funciton():当input失去焦点的时候,函数自动执行 四类事件: 鼠标事件 onclick:当点击的时候,自动执行 ondblclick:当双击的时候,自动执行 oncontextmenu:当右击的时候,自动执行 键盘事件 window事件 表单事件:onblur 全选和全不选的扩展作业完成:不用敲7-9
以上是关于javascript 如何获取元素在数组中的位置 key的主要内容,如果未能解决你的问题,请参考以下文章