如何找到有值的数组索引?
假设我已经得到了这个,
imageList = [100,200,300,400,500];
这给了我
[0]100 [1]200
等。JavaScript
中有没有办法返回带有值的索引?
即我想要 200 的索引,我得到返回 1。
Say I've got this
imageList = [100,200,300,400,500];
Which gives me
[0]100 [1]200
etc.
Is there any way in JavaScript to return the index with the value?
I.e. I want the index for 200, I get returned 1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
您可以使用
indexOf
:如果在数组中找不到值,您将得到-1。
You can use
indexOf
:You will get -1 if it cannot find a value in the array.
对于对象数组,请使用
map
和indexOf
:在现代浏览器中,您可以使用
findIndex< /代码>
:
它是 ES6 的一部分,受 Chrome、FF、Safari 支持和边缘
For objects array use
map
withindexOf
:In modern browsers you can use
findIndex
:Its part of ES6 and supported by Chrome, FF, Safari and Edge
使用jQuery的函数
jQuery.inArray
Use jQuery's function
jQuery.inArray
这是在 javascript 中在复杂数组中查找值索引的另一种方法。希望确实能帮助某人。
假设我们有一个 JavaScript 数组,如下所示,
现在如果我们需要选择数组中的特定对象。假设我们要查找名为 Tanmay 的学生的索引。
我们可以通过迭代数组并比较给定键的值来做到这一点。
您可以使用该函数查找特定元素的索引,如下所示,
Here is an another way find value index in complex array in javascript. Hope help somebody indeed.
Let us assume we have a JavaScript array as following,
Now if we have a requirement to select a particular object in the array. Let us assume that we want to find index of student with name Tanmay.
We can do that by iterating through the array and comparing value at the given key.
You can use the function to find index of a particular element as below,
使用索引
Use indexOf
indexOf
怎么样?how about
indexOf
?Array.indexOf
在某些版本的 Internet Explorer 中不起作用 - 有很多替代方法可以做到这一点...请参阅此问题/答案:如何检查 JavaScript 中的数组是否包含对象?Array.indexOf
doesnt work in some versions of internet explorer - there are lots of alternative ways of doing it though ... see this question / answer : How do I check if an array includes an object in JavaScript?当列表不是很长时,这是我知道的最好方法:
When the lists aren't extremely long, this is the best way I know:
可以使用
ES6
函数Array.prototype.findIndex
。MDN 说:
通过对象属性查找索引。通过
对象属性查找索引:
例如,有一个这样的数组:
那么,查找必要属性索引的代码如下所示:
It is possible to use a
ES6
functionArray.prototype.findIndex
.MDN says:
Find an index by object property.
To find an index by object property:
For example, there is a such array:
Then, code to find an index of necessary property looks like that:
在多维数组中。
参考数组:
使用
filter
和indexOf
:使用
循环遍历数组中的每个项目索引
:In a multidimensional array.
Reference array:
Using
filter
andindexOf
:Looping through each item in the array using
indexOf
:这是我的看法,似乎大多数人的解决方案都不会检查该项目是否存在,如果不存在,它会删除随机值。
首先通过查找其索引来检查该元素是否存在。
如果确实存在,请使用 splice 方法通过其索引将其删除
Here is my take on it, seems like most peoples solutions don't check if the item exists and it removes random values if it does not exist.
First check if the element exists by looking for it's index.
If it does exist, remove it by its index using the splice method
请注意:includes 函数是数组上的一个简单实例方法,有助于轻松查找数组中是否有某个项目(包括 NaN,与 indexOf 不同)
Please Note: Includes function is a simple instance method on the array and helps to easily find if an item is in the array(including NaN unlike indexOf)