js中已知一个array,怎样获取一个map在array中的索引
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中已知一个array,怎样获取一个map在array中的索引相关的知识,希望对你有一定的参考价值。
var array=[key:'1',value:'一',key:'2',value:'二',key:'1',value:'三'],
现在我可以获取var map = key:'1',value:'一',如何获取这个map在array中的下标,使用array.indexOf(map)时总是返回-1,求解
array.map((item)=>item.key).indexOf(map.key);
map.key是你定义的map的key
参考技术B 不行的话就用循环吧var index=(function()
for(var i=0;i<array.length;i++)
if(map.key===array[i].key)
return i;
)()本回答被提问者和网友采纳
js 自带的 map() 方法
1. 方法概述
map()
方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。
2. 例子
2.1 在字符串中使用map
在一个 String
上使用 map 方法获取字符串中每个字符所对应的 ASCII 码组成的数组:
var map = Array.prototype.map var a = map.call("Hello World", function(x) { return x.charCodeAt(0); }) // a的值为[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
2.2 易犯错误
通常情况下,map
方法中的 callback
函数只需要接受一个参数(很多时候,自定义的函数形参只有一个),就是正在被遍历的数组元素本身。
但这并不意味着 map
只给 callback
传了一个参数(会传递3个参数)。这个思维惯性可能会让我们犯一个很容易犯的错误。
// 下面的语句返回什么呢: ["1", "2", "3"].map(parseInt); // 你可能觉的会是[1, 2, 3] // 但实际的结果是 [1, NaN, NaN] // 通常使用parseInt时,只需要传递一个参数.但实际上,parseInt可以有两个参数.第二个参数是进制数.可以通过语句"alert(parseInt.length)===2"来验证. // map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素, 元素索引, 原数组本身. // 第三个参数parseInt会忽视, 但第二个参数不会,也就是说,parseInt把传过来的索引值当成进制数来使用.从而返回了NaN. /* //应该使用如下的用户函数returnInt function returnInt(element){ return parseInt(element,10); } ["1", "2", "3"].map(returnInt); // 返回[1,2,3] */
以上是关于js中已知一个array,怎样获取一个map在array中的索引的主要内容,如果未能解决你的问题,请参考以下文章