我已经看过the big answer了,每个人都给出了完全不同的答案,但复杂程度不同。
我正在尝试这样做:
var tempFiles=[];
tempFiles[req.query.tenant,file.name]=finalName;
我不确定这是否奏效。
当我
console.log(tempFiles)
时,我得到[ 'the value for file.name ': 'the value for final name' ]
req.query.tenant
的值在哪里?这是正确的2D阵列吗? 最佳答案
您不能为此使用逗号。您必须具有单独的[ ]
运算符。
tempFiles[req.query.tenant][file.name]=finalName;
相反,您的代码不是语法错误,因为确实存在逗号运算符。您的版本的含义是:
计算表达式
req.query.tenant
丢掉那个价值
计算表达式
file.name
使用该值作为属性名称,以在“ tempFiles”引用的对象中查找
另外,请注意,如果您实际上只是在尝试进行分配之前就刚刚声明了数组,那么它将无法正常工作。您必须显式创建第二个维度:
var tempFiles = [];
tempFiles[ req.query.tenant ] = [];
tempFiles[ req.query.tenant ] [ file.name ] = finalName;
最后,如果所涉及的属性名称(
req.query.tenant
和file.name
)是字符串,那么您实际上绝对不应该使用数组。您应该创建普通对象:var tempFiles = {};
tempFiles[ req.query.tenant ] = {};
tempFiles[ req.query.tenant ] [ file.name ] = finalName;
关于javascript - 简单的JavaScript二维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21322503/