繁体   English   中英

在数组JavaScript中查找特定元素

[英]Find specific element in array javascript

我有一个包含n个数组的数组A。 n个数组中的每个数组都包含两个元素。 第一个是ID,第二个是对象。 有关更多详细信息,请参见以下示例:

A = [ [100, object1], [22, object2], [300, object3]]

对于给定的ID,我想获取关联的对象。 例如,对于id = 22 ,我想获取object2

循环,检查并返回

function getById(id) {
    for (var i = 0; i < A.length; i++) {
        if (A[i][0] == id) {
            return A[i][1];
        }
    }
    return false;
}

这是一种非常基本的方法。 遍历A ,继续检查每个数组的第一个成员是否与您的id匹配,并在匹配的情况下返回关联的对象。

function returnObjectById(id) {
    for (var i=0; i< A.length; i++) {
        if (A[i][0]==id) {
            return A[i][1];
        }
    }
    return false; // in case id does not exist
}

在Coffeescript中:

returnObjectById = (id) ->
  i = 0
  while i < A.length
    if A[i][0] == id
      return A[i][1]
    i++
  false
  # in case id does not exist

CoffeeScript版本可能像:

find_in = (a, v) ->
    return e[1] for e in a when e[0] == v

那么你可以说:

thing = find_in(A, 22)

如果找不到v ,则会得到undefined

a中的for e in a是一个基本的for循环,那么when子句仅在其条件为true时才执行主体。 因此,该循环在功能上等效于:

for e in a
    if e[0] == v
        return e[1]

精美的手册涵盖了所有这一切。

在CoffeeScript中,您可以使用JS到CF的过渡

getById = (id) ->
  i = 0
  while i < A.length
    if A[i][0] == id
      return A[i][1]
    i++
  false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM