【问题标题】:From a DOMString to an array从 DOMString 到数组
【发布时间】:2013-10-31 18:58:42
【问题描述】:

我是 javascript 新手。 我想知道是否有可能转换 DOMString(通过读取保存在文件系统中的文件)并将其转换为数组,因为我需要它来执行操作。 我用e.target.result读取文件内容,结果是

{element: "one", value: "one"},
{element: "two", value: "two"},
{...},
{...}

我需要这样保存的数组

var array = [{element: "one", value: "one"},
            {element: "two", value: "two"},
            {...},
            {...}]

任何想法怎么做? 提前致谢

【问题讨论】:

  • 您能否补充一下您输入的内容,看看?
  • 正是读数的输出,也应该是数组的输入是[{element: "one", value: "one"}, {element: "two", value: "two"}, {...}, {...}] 我试图简单地将它分配给一个数组变量,但它不起作用

标签: javascript arrays string file dom


【解决方案1】:

你可以试试 split() 函数。

var prearray = '{element: "one", value: "one"},{element: "two", value: "two"}';
var realarray = prearray.split(",");

http://www.w3schools.com/jsref/jsref_split.asp

【讨论】:

  • string.split(',') 也会将elementvalue 拆分为它们自己的数组。
  • 我尝试过使用 String.split(',') 但如前所述,它将第一个数组拆分为 2 个数组
【解决方案2】:

您可以使用eval 为您执行此操作:

var array = eval("["+item+"]");
array[0].element //"one"
array[0].value //"one"
array[1].element //"two"
array[1].value //"two"

小提琴:http://jsfiddle.net/KyleMuir/NZwAx/

警告,eval 可能非常危险(如果来自第三方,则代码注入,如果有比此示例更复杂的东西并且还可能存在性能问题,则众所周知难以调试):https://stackoverflow.com/a/198031/2469255 所以请确保您信任数据源你是eval'ing

希望这会有所帮助!

【讨论】:

  • 这是个好主意。唯一的问题是,现在,当我尝试执行它时,还在清单文件中添加"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",出现错误:拒绝将字符串评估为 JavaScript,因为“unsafe-eval”不是允许的来源以下内容安全策略指令中的脚本:“default-src 'self' chrome-extension-resource:”。请注意,'script-src' 没有显式设置,所以 'default-src' 用作后备。
  • 在这种情况下,编写自定义解析器似乎是您的最佳选择。
猜你喜欢
  • 1970-01-01
  • 2016-05-09
  • 2019-10-13
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-10
相关资源
最近更新 更多