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;



只能先这样了

你这样存进去的是没有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>
参考技术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的主要内容,如果未能解决你的问题,请参考以下文章

js怎么获取数组中元素的位置?

在 javascript 中快速获取数组指定位置的元素

JavaScript 重点笔记

javascript中知道一个数组中的一个元素的值,如何获取数组下标

JavaScript数据结构之链表

JavaScript数据结构之链表