ループ内で作成された別の配列内の値に配列内の文字列をコピーする必要があります。最後にすべての名前を表示すると、名前の配列の最後になります。私は参照を持っていないように、私はそれが外部ライブラリなしでネイティブのjavascriptのみになりたいと思いますので、値をコピー/複製したいです。純粋なjavascriptで配列内部のクロージャを使用する
は、これは私のコード
var exp_names =["name1","name2","name3"];
var i;
for (i = 0; i < exp_names.length; i++) {
d3.tsv("data/"+exp_names[i], function(data) {
data.forEach(function(d){
//Do stuff with my tsv
d.expId = exp_names[i];
});
});
});
され、その後、すべてのEXPIDは "NAME3"
データは、ファイルごとに正しくロードされています。
jqueryの拡張関数とlodashのクローン関数を試してみましたが、自分のクローン関数を試してみましたが、何も動作せず、すべてのexpIdに対して "name3"がスローされます。
これらは動作しませんでした:
var newname = new String(exp_names[i]);
var newname = $.extend(true, {}, exp_names[i]);
var newname = $.extend({}, exp_names[i]);
var newname = _.clone(exp_names[i]);
var newname = exp_names[i].slice(0);
私は今では絶望的です。
書き込みは、あなたの入力配列から予想される結果は –