有没有办法动态分配数组?代码无法按预期工作。它在var p = { z }
var z = "\"" + m[0] + "\"" + " : " + "\"" + (m[0] = m[1]) + "\"";
if(i != u.length - 1){
z = z + ",";
}
var p = {z}
for (var key in p) {
if (p.hasOwnProperty(key)) {
client = Elements.AddNew(key, p[key]);
client.Update();
}
}
整个代码
var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// Read the contents of the file.
Session.Output("Reading file");
ts = fso.OpenTextFile("c:\\temp\\roles.txt", ForReading);
s = ts.ReadAll();
u = s.split('\r\n');
Session.Output(u);
for(i = 0; i < u.length; i++){
m = u[i].split(",");
var z = "\"" + m[0] + "\"" + " : " + "\"" + (m[0] = m[1]) + "\"";
if(i != u.length - 1){
z = z + ",";
}
var p = {
z
}
Session.Output(p);
for (var key in p)
{
if (p.hasOwnProperty(key))
{
client = Elements.AddNew(key, p[key]);
client.Update();
}
}
}
该文件的内容如下。这是逗号分隔的文件。
abc,1
def,2
ghi,3
答案 0 :(得分:1)
你无法创建这样的对象。
您需要使用bracket notation作为member operator才能执行此操作
var p = {}
p[m[0]] = m[1];
for (var key in p) {
if (p.hasOwnProperty(key)) {
client = Elements.AddNew(key, p[key]);
client.Update();
}
}
答案 1 :(得分:1)
我会假设:
(m[0] = m[1])
应该是:
(m[0] == m[1])
如果你有一个数组 m ,就像:
var m = ['a', 'b', 'b'];
您似乎正在尝试使用该模式制作对象:
var z = { m[0] : (m[0] == m[1]) };
可写:
var z = {};
z[m[0]] = m[0] == m[1];
可以使用以下命令从数组创建对象:
var z = {};
for (var i=0, iLen=m.length - 1; i<iLen; i++) {
z[m[i]] = m[i] == m[i+1];
}
这会创建一个像这样的对象:
{a: false, b: true}