【发布时间】:2011-03-06 22:56:03
【问题描述】:
我目前正在使用 javascript eval() 来检查和创建一个我不知道深度的多维对象。
基本上,我想知道是否有任何方法可以创建这个多深度对象。对象可以深至result['one']['two']['three']['four']['five']['six']['seven']。我知道在某些情况下使用 eval() 非常好,但我也担心性能。我想过将每个深度引用到一个新变量,但我不知道如何在 Javascript 中做指针
create = function(fields, create_array){
var field;
for (j = 0; j < len; j++){
field = fields.slice(0, j).join('');
if (field){
// is there any way to do this without eval?
eval('if (typeof result' + field + ' == "undefined" || !result' + field + ') result' + field + ' = ' + (create_array?'[]':'{}') + ';');
}
}
}
【问题讨论】:
-
输入是输入名称和值的数组,例如
<input name="food[]" type="checkbox">或<input type="text" name="field[name][first]">用于组合对象以使用 JSON 通过 AJAX 发送。
标签: javascript arrays performance multidimensional-array eval