gpt4 book ai didi

javascript - 将两个 WinJS.Binding.List 合并为一个

转载 作者:行者123 更新时间:2023-11-30 13:06:10 25 4
gpt4 key购买 nike

我正在尝试将 2 个 WinJS.Binding.List 合并为一个。我在MSDN上看到了.concat方法,但是好像不行。有人可以告诉我怎么做吗?

输入:

var a = new WinJS.Binding.List([1,2])
var b = new WinJS.Binding.List([3,4])

预期输出:其中包含数字 1、2、3、4 的 WinJS.Binding.List。

我试过 a.concat(b),但它返回一个 3 元素数组而不是 WinJS.Binding.List。这是控制台中的日志。

var a = new WinJS.Binding.List([1,2])
var b = new WinJS.Binding.List([3,4])
a.concat(b)
==> [object Array][...]

知道为什么以及如何正确地做到这一点吗?

附言我知道我可以遍历 b 中的每个项目并插入 a,但是有没有更有效的方法呢?我也不想在将数组转换为 WinJS.Binding.List 之前连接数组,因为我正在从 2 个不同的数据源进行 2 个异步调用。上面的代码只是一个简化的例子。

最佳答案

您可以从列表中获取 2 个数组(使用切片),连接它们,然后创建一个新列表。

var a = new WinJS.Binding.List([1, 2]);
var b = new WinJS.Binding.List([3, 4]);
var ab = new WinJS.Binding.List(a.slice(0).concat(b.slice(0)));

也可以使用list concat方法(相对于原生的js concat)让它更短一些:

var a = new WinJS.Binding.List([1, 2]);
var b = new WinJS.Binding.List([3, 4]);
var ab = new WinJS.Binding.List(a.concat(b.slice(0)));

关于javascript - 将两个 WinJS.Binding.List 合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15628927/

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