【问题标题】:Restroing Array Children values via JSON [duplicate]通过 JSON 恢复数组子值 [重复]
【发布时间】:2014-01-06 10:10:11
【问题描述】:

我有一些变量xx=0 , yy=7 存储在称为变量的数组中,其中variables=[xx,yy],现在我将这些值存储在一个 json 文件中,并且在解析回变量数组后,我想恢复每个变量值(重新赋值),什么是完美的方法,假设这个例子很简单,因为我真的有很多变量。

【问题讨论】:

  • 我已经解析过了,我想将数组中的值恢复为分配给它们的变量。

标签: javascript jquery arrays


【解决方案1】:

这不好,但如果你想自动执行此操作,我认为你找不到更好的方法。

// String with values
var s = '[1,2,3,4,5,6]';
// Expected variables
var a = ('xx,yy,zz,aa,bb,cc,dd,ee').split(',');
// Changing string in String[]
var m = s.match(/\d+/g);
a.forEach(function (v, i) {
  // Extract value.
  var n = m[i];
  // Prevent change empty value.
  if(n)
    // Set value by evaluation (Be careful, this variable must be in scope!).
    // eval is EVIL!
    eval('(' + v + '=' + n + ')');
});

【讨论】:

  • 这太完美了,非常感谢
【解决方案2】:

如果你的变量是全局定义的,你可以试试

var variablenames = ["xx", "yy"];
var variables = [xx,yy];
for (var i=0; i<variables.length; i++) {
    window[variablenames[i]] = variables[i];
}

【讨论】:

  • function A() { var b = 1; this.te = function () { console.log(window.b); }; };var a = new A();a.te(); // undefined。范围我的朋友,范围。
  • 这就是为什么我写如果变量是全局的。如果它们分散在不同的范围内,则更容易一一分配。
【解决方案3】:

可能是这样的:

var variables = {};
variables.xx = 100;
variables.yy = 200;

var jsonObj = JSON.stringify(variables); // converted to Json object

console.log(jsonObj); // outputs: {"xx":100,"yy":200} 

var obj1 = JSON.parse(jsonObj);

alert(obj1.xx + "  " + obj1.yy); // alerts (100 200);

【讨论】:

  • 我有一个包含 100 个变量的列表?
  • 你应该在你的问题中提到过......无论如何你必须定义100个变量。
  • 变量是预定义的吗?
  • @patel.milanb 只有当你读到“假设这个例子很简单,因为我真的有很多变量。”
猜你喜欢
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 2014-11-28
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多