繁体   English   中英

如何访问 javascript object 文字的各个元素?

[英]how to access individual elements of a javascript object literal?

我有一个 javascript object 文字? 我在我的网页中以 data.list[i].ger 或 data.list[i].eng 的形式访问它们

如果我想直接搜索条目,如何直接访问该条目? 还是我必须在排序时进行线性搜索或二进制搜索?

data = {
    list: [
        {
            "ger": "A-as",
            "eng": "A as"
        },
        {
            "ger": "A-aws",
            "eng": "a-was "
        },
        {
            "ger": "we",
            "eng": "cv"
        },
        {
            "ger": "q",
            "eng": "w-la-w"
        },....

例如,如果我想访问 "ger": "q","eng": "w-la-w" 我会将其作为 data.list[4].ger 访问

有什么方法可以直接访问知道该条目的索引是什么?

我想您可能正在寻找JSONSelect 它可以轻松访问复杂的 JSON 文档中的数据,但看起来像 CSS。

查看示例,它看起来很像您想要做的。

例如,要获取 ger:q 的 eng 版本,您可以执行.ger:val("q") ~.eng

您可以在此处下载它并将其与JSONSelect.matchJSONSelect.forEach使用。

如果你只想搜索你的数组,我会用 go 类似的东西

function lookupTrans(value, fromLang, toLang) {
  for (var i = 0, dataLen = data.list.length; i < dataLen; i++) {
    if (data.list[i][fromLang] === value) {
      return data.list[i][toLang];
      // return i (if you're lookup for just the index number)
    }
  }
  return "";
}

但是,我确实想确保您不只是尝试进行单向国际化。 如果是这种情况,我建议只使用命名键:

var i18n = {
  "translation": {
    "en": "translation",
    "ja": "hon'yaku"
  },
  "list": {
    "en": "list",
    "ja": "risuto"
  },
  "example": {
    "en": "example",
    "ja": "rei"
  },
  "imbueWithConfidence": {
    "en": "Let's translate!",
    "ja": "Hon'yaku shimashou!"
  }
};

暂无
暂无

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

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