Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中修改对象内部函数中定义的数组_Javascript_Arrays_Object - Fatal编程技术网

在JavaScript中修改对象内部函数中定义的数组

在JavaScript中修改对象内部函数中定义的数组,javascript,arrays,object,Javascript,Arrays,Object,我已定义对象: var obj = { arr: [{prop1: 1}, {prop2: 2}] } 对象被发送到函数以添加一些元素: fnc(obj); 其中fnc看起来像: var fnc = function(p) { p.arr.push({prop3: 3}); // doesn't work p.arr[0].prop1 = 2; // works p.arr.length = 0; // works } 问题是,我可以更改obj数组的当前对象

我已定义对象:

var obj = {
    arr: [{prop1: 1}, {prop2: 2}]
}
对象被发送到函数以添加一些元素:

fnc(obj);
其中fnc看起来像:

var fnc = function(p) {
    p.arr.push({prop3: 3}); // doesn't work
    p.arr[0].prop1 = 2; // works
    p.arr.length = 0; // works
}
问题是,我可以更改obj数组的当前对象,但不能添加任何元素。
如何向该数组中添加更多在该函数外部可见的元素?

这对我很有用。为什么你认为它不会,你能给我们一个明确的例子说明它是如何失败的吗?代码对我来说很好。只需在push语句后放置一个断点,然后检查对象是否已添加到数组中。为什么要执行
p.arr.length=0
?作为一个有效的例子?正在清空你的阵列。。。