[英]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.