gpt4 book ai didi

javascript - 将值从 observableArray 传递给另一个而不相互引用

转载 作者:行者123 更新时间:2023-11-29 19:46:54 27 4
gpt4 key购买 nike

我正在尝试将值从一个 observableArray 传递到另一个,而无需相互引用,如果我更改了它们同步的可观察数组值之一并且两者具有相同的值,就知道了。

这里是 jsFiddle

JavaScript:

var test = ko.observableArray([1, 2, 3]);
var test2 = ko.observableArray(test());
test2()[0] = 2;
console.log(test());
console.log(test2());

输出:

[2,2,3]
[2,2,3]

预期:

[1,2,3]
[2,2,3]

最佳答案

尝试这样做:

var test2 = ko.observableArray(test().slice(0));

取而代之的是:

var test2 = ko.observableArray(test());

这是创建底层数组克隆的简单方法;现在您正在引用同一个数组。

slice 函数基本上选择从给定索引(在本例中为 0)开始并在数组长度末尾(因为未指定)结束的元素作为新数组。

来自 KnockoutJS :

The slice function is the observableArray equivalent of the native JavaScript slice function (i.e., it returns the entries of your array from a given start index up to a given end index). Calling myObservableArray.slice(...) is equivalent to calling the same method on the underlying array (i.e., myObservableArray().slice(...)).

这是对您的 JSFiddle 的更新.

关于javascript - 将值从 observableArray 传递给另一个而不相互引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18949267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com