当前位置: 首页 > 面试题库 >

从名称为JSON的数组中获取一项

和光启
2023-03-14
问题内容

我有这个数组:

var arr = [];
arr.push({name:"k1", value:"abc"});
arr.push({name:"k2", value:"hi"});
arr.push({name:"k3", value:"oa"});

是否可以通过知道名称来获取值或特定元素?

像这样的东西:

arr['k2'].value

要么

arr.get('k1')

问题答案:

通常通过数字索引访问数组,因此在您的示例arr[0] == {name:"k1", value:"abc"}。如果您知道name每个对象的属性都是唯一的,则可以将它们存储在对象而不是数组中,如下所示:

var obj = {};
obj["k1"] = "abc";
obj["k2"] = "hi";
obj["k3"] = "oa";

alert(obj["k2"]); // displays "hi"

如果您实际上想要一个像您的帖子中那样的对象数组,则可以遍历该数组并在找到具有对象具有所需属性的元素时返回:

function findElement(arr, propName, propValue) {
  for (var i=0; i < arr.length; i++)
    if (arr[i][propName] == propValue)
      return arr[i];

  // will return undefined if not found; you could return a default instead
}

// Using the array from the question
var x = findElement(arr, "name", "k2"); // x is {"name":"k2", "value":"hi"}
alert(x["value"]); // displays "hi"

var y = findElement(arr, "name", "k9"); // y is undefined
alert(y["value"]); // error because y is undefined

alert(findElement(arr, "name", "k2")["value"]); // displays "hi";

alert(findElement(arr, "name", "zzz")["value"]); // gives an error because the function returned undefined which won't have a "value" property


 类似资料:
  • 我想从这个链接获取一个url: 它给出结果: { " data ":{ " URL ":" https://FBC dn-profile-a . akamaihd . net/hprofile-AK-xa P1/t 1.0-1/s200x 200/10342822 _ 10202261537234765 _ 3194866551853134720 _ n . jpg "," is_silhouet

  • 我有一些数组,如果它们包含类似的值,我想返回这些数组的名称。 我有我的变量,它有多个数组,名字要么是,要么是,要么是。包含的只是变量中某些数组中相同的值。我需要返回数组中包含、和的数组的名称。因此,对于这个示例,我需要返回:。 通过这个函数抛出它们时,我得到一个错误。如何获取返回的数组?

  • 问题内容: 如何使用Jackson从JSON树中接收节点名称?JSON文件看起来像这样: 我有 并且需要类似的东西 谢谢。 问题答案: 此答案适用于2+之前的Jackson版本(最初写为1.8)。请参阅@SupunSameera的答案,以获取与较新版本的Jackson兼容的版本。 “节点名称”的JSON术语是“键”。由于 不包含键,因此您需要进行不同的迭代: 如果 只 需要查看键,则可以使用以下方

  • 我正在解析来自json的数据,如下所示。 json对象是这样的, 我正在获取硬币Id,现在从这个硬币Id中,我想扫描另一个json文件,寻找特定的Id,并从中获取名称或符号, 另一个json包含, 我的bindviewholder方法, 现在我的问题是,如何在bindviewholder类上从第一个json获取硬币ID,然后扫描第二个json以获取该ID并获取硬币的名称,然后执行之类的操作。 现在

  • 问题内容: 我有一个带有列()的表。在这个专栏中,我存储值一样。 但是我必须出示月份 名称 。 例如:如果值是我需要显示。 问题答案: 基本上,@ small_duck已经发布了一些内容,但是进行了一些改进: 只需将文本强制转换为文本即可,无需。

  • 我想从这个json数据中提取id值。我尝试了很多方法,但我不知道我的代码出了什么问题,我也不想把id存储到数组中