【发布时间】:2018-12-31 20:34:50
【问题描述】:
更新:
许多人问为什么不使用[arr[0], arr[1]]。问题是我必须将此数组传递给我无权访问Angular Material Table 的方法。而且我不想一遍又一遍地调用该方法。
我已经处理了arr 数组,我不想处理pointer 数组来反映我已经知道它在哪里的新数据。
Nina Scholz answer 似乎解决了这个问题。
有没有办法在 Javascript 中使用像 C 这样的“指针”?
我想做的是:
我有一个包含对象的数组
const arr = [
{prop: 3},
{prop: 4},
];
我想要一个数组来指向这个数组的位置
const pointer = [arr[0], arr[1]]; // I want pointer to point to be an array containing the first and second elements of arr
这将获得对 {prop: 3} 和 {prop: 4} 对象的引用,这不是我想要的,因为如果我这样做:
arr.splice(0, 0, {prop: 1}); // arr => [{prop:1},{prop:3},{prop:4}]
console.log(pointer); // [{prop: 3},{prop: 4}]
如您所见,pointer 持有对对象{prop:3} 和{prop:4} 的引用。
如何实现pointer 来保存对数组位置0 的引用,而不是存储在其中的对象?那么,在这个例子中,pointer => [{prop:1},{prop:3}]?
我不能一直调用pointer = [arr[0], arr[1]],因为arr 会不断地异步变化。
是否有一种“反应式”的方式来处理数组?
【问题讨论】:
-
你的指针总是指向同一个数组吗?在这种情况下,只需创建一个索引数组。
-
@LaurensDeprost 我认为那里的任何答案都不会对此有所帮助。
-
你想用这个实现什么?如果您想要索引
0处的对象,只需使用arr[0]...它将返回当时的当前值。
标签: javascript arrays