[英]How to copy an array of JSON objects in javascript
我在JavaScript中有一组对象。 例如current_films[0].f_name, current_films[0].f_pattern
等。我想将数组复制到另一个current_films[0].f_name, current_films[0].f_pattern
以下的数组:
for(var i=0; i<current_films.length; i++)
{
if(current_films[i].f_material == Value)
{
temp[i] = current_films[i];
}
}
但是,当我这样做时,似乎有一个莫名其妙的问题。 由于莫名其妙的问题,我的意思是代码没有执行,数组也没有按照我的意愿复制。
任何帮助将不胜感激。 谢谢!
你能否提一下为什么上面的代码不起作用? 就像在,如果我发出alert("Reached here");
,它没有被执行。 任何想法为何如此?
我看到的一个问题是你将temp[i]
设置为值,这意味着temp
数组中会有间隙。 您可以使用push()
将值附加到temp
这样您就不需要管理两组索引。
你也可以使用JavaScript's Array.filter()
来做到这一点。 Filter将返回原始数组中值的新数组,其中函数返回true
。
var temp = current_films.filter(function(film) {
return (film.f_material === Value);
});
你能否提一下为什么上面的代码不起作用? 就像在,如果我发出警报(“在这里到达”);它没有被执行。 任何想法为何如此?
我猜测f_material没有为数组中的每个元素定义。
如果是这种情况我会用
if(typeof(current_films[i].f_material)!=='undefined')
{
if(current_films[i].f_material == Value)
{
temp[i] = current_films[i];
}
}
无论如何,我建议你熟悉浏览器的javascript调试器(假设代码在浏览器中运行)
最后请注意,您没有复制数组/对象:
temp [i]是对current_films [i]的引用
稍后在代码中修改current_films将导致修改temp
如果这不是谷歌“javascript对象复制”所希望的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.