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 The Good Parts 上的 Crokfod。在 javascript 中,将左大括号放在下一行会产生一些难以检测的奇怪错误。

b) 我在 LoopTimes 中缓存了 MyArray 的长度,这样我就不必在每次迭代时评估数组的长度。

于 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 回答