在Javascript中更改每个对象的值

时间:2012-05-08 22:17:25

标签: javascript

将附加路径信息添加到每个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"}
 ...]

3 个答案:

答案 0 :(得分:1)

一个简单的for循环:

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

答案 1 :(得分:1)

假设您的对象数组名为MyArray:

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

请注意:

a)开口大括号与for语句位于同一行。有关解释,请参阅Youkube上的Javascript The Good Parts上的Crokfod。在javascript中,将左大括号放在下一行可能会产生一些难以察觉的奇怪错误。

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

答案 2 :(得分:0)

如果您只想在现代浏览器中运行此代码,则始终可以考虑使用map对象的Array方法。

假设您的对象数组名为“array”

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

这将运行匿名函数,该函数接受数组中的“item”,并在数组的每个元素上返回修改后的url字段。

如果您需要在旧版浏览器上运行代码,请坚持使用其他贡献者建议的for循环。