【问题标题】:How would i go about getting a specific object based on the value of a string with javascript?我将如何根据带有 javascript 的字符串的值来获取特定对象?
【发布时间】:2011-10-16 14:23:11
【问题描述】:

我有单独的 javascript 文件来加载自定义对象;这些对象旨在在读取主函数时扩展一些默认参数

它们看起来像

 var str1= { path:'url1:, var1:5};
 var str2= { path:'url2:, var1:3};
 etc...

我有一个字符串数组(通过加载 rss 页面生成),我想根据对象名称是否与对象名称匹配来返回对象。硬编码它会破坏目的

【问题讨论】:

    标签: javascript object


    【解决方案1】:

    看看this question。它展示了如何使用字符串来引用对象。我能看到的唯一区别是,不是从window 对象开始,而是从定义当前范围的任何对象开始(例如this)。

    【讨论】:

      【解决方案2】:

      您可以使用方括号表示法来引用其键名保存在变量中的对象属性:

      var key = 'path';
      var str1 = { path: 'url', var1: 1};
      var value = str1[key]; // value == 'url';
      

      你也可以这样做:

      var str1 = 'a';
      var str2 = 'b';
      
      var key = 'str1';
      var value = window[key]; // value == 'a';
      

      【讨论】:

        【解决方案3】:
        var map = {  "string1": { path: "url1", var1:5},
                     "string2": { path: "url2", var1:3} };
        ...
        var url = map[yourstring].path;
        

        【讨论】:

        • 很好地回答了这个问题,但值得一提的是,如果您已经使用 OP 示例中的实际变量编写了代码,这将不起作用。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        相关资源
        最近更新 更多