重複の可能性:
動的オブジェクトのプロパティ名
オブジェクトのプロパティへのアクセスを動的に生成したい。
アクセスしようとすると、が表示されmydata[i].val.name
ますsomename
。
mydata[i] + bar[j]
(bar [j] ==='.val.name')のように試してみると、失敗します。
このようなものを動的に作成するにはどうすればよいですか?ユーザーが生成した値を使用してオブジェクトの任意のプロパティにアクセスできるようにするには?
いくつかのコード:
オブジェクトがある場合は、そのプロパティを反復処理して、関心のあるオブジェクトを収集できるようにします。理想的には、次のようなものが必要です。
var processData = function (data, keys, values) {
var returnData = [], i, j, k;
var parsedData = JSON.parse(data);
var keys = keys || null;
var values = values || null;
var datalen = parsedData.length;
for (i = 0; i < datalen; i++) {
returnData[i] = {};
for(j = 0; j< keys.length; j++){
for(k = 0; k < values.length; k++){
returnData[i][keys[j]] = parsedData[i] + values;
}
}
}
return returnData;
};
そしてそれを次のように使用します:
var keys = ["foo","bar"];
var values = [".val.name", ".val.date"];
processData(data, keys, values);
しかし、これは機能せず、コンソールfoo="[object Object].val.name"
では予想よりも表示されfoo="ACME Industries"
ます。