1

各javascriptオブジェクトに追加のパス情報を追加するための最良の方法は何ですか?各jpg名の前に「assets/img / upload /」のように?url = "assets / img / upload / 02.jpg"などがありますか?それは大きな助けになるでしょう!

今の私のデータ:

[Object { url="02.jpg"}, 
 Object { url="03.jpg"}, 
 Object { url="09.jpg"}, 
 Object { url="04.jpg"}, 
 Object { url="5.jpg"}
 ...]
4

3 に答える 3

1

単純なforループ:

for(var i = 0; i < array.length; i++)
{
  array[i].url = "assets/img/upload/" + array[i].url;
}
于 2012-05-08T22:20:30.600 に答える
1

オブジェクトの配列がMyArrayと呼ばれているとします。

for (var i = 0, LoopTimes = MyArray.length; i < LoopTimes; i++) {
       MyArray[i].url = "assets/img/upload/" + MyArray[i].url;
}

ご了承ください:

a)冒頭の中括弧は、forステートメントと同じ行にあります。説明については、YouTubeのJavascript TheGoodPartsのCrokfodを参照してください。javascriptでは、次の行に冒頭の括弧を付けると、検出が難しい奇妙なバグが発生する可能性があります。

b)MyArrayの長さをLoopTimesにキャッシュして、反復ごとに配列の長さを評価する必要がないようにします。

于 2012-05-08T22:20:48.790 に答える
0

このコードを最新のブラウザーでのみ実行する場合は、常にオブジェクトのmapメソッドを使用することを検討できArrayます。

オブジェクトの配列が「配列」と呼ばれると仮定します

array.map(function(item) {return item.url = "assets/img/upload/" + item.url;});

これは、配列内の「アイテム」を受け取り、配列の各要素に対して変更された url フィールドを返す無名関数を実行します。

コードを古いブラウザーで実行する必要がある場合は、他の貢献者によって提案された for ループを使用してください。

于 2012-05-08T23:01:58.227 に答える