如何在 javascript 中复制 JSON 对象数组
How to copy an array of JSON objects in javascript
我在 JavaScript 中有一个对象数组,例如 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对象复制"的行为。
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 如何为json对象中的段发送array[]
- 将JSON对象传递给angular指令
- 更改JSON对象的结构
- 访问JSON对象内部的数组元素
- 在ejs-partial中对JSON对象进行迭代
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 访问嵌套JSON对象的键,其中键是动态的
- json对象中缺少对象循环
- 发送json对象或使用express路由呈现视图
- 在play2框架中向json对象添加下拉列表项
- 元素名称上带有短划线 (-) 字符的 Json 对象
- autocomplete不接受源的json对象
- 如何在javascript中创建动态json对象
- 在使用客户端脚本时拾取JSON对象
- 如何通过json对象数组为嵌套对象赋值
- 构造JSON对象