gpt4 book ai didi

Javascript在创建子数组时使用原始数组

转载 作者:行者123 更新时间:2023-11-28 08:02:36 25 4
gpt4 key购买 nike

我是 Javascript 新手,遇到了以下问题:

我有一个保持不变的对象数组。我想从这个数组中创建具有不同开始和结束索引的子数组。

var origArr = [o1, o2, o3, o4, o5];
// origArr .length = 5
var subArr = origArr.slice(1, 4);
// subArr = [o2, o3, o4];

通常我可以使用切片方法。但这意味着元素被复制到新数组中。由于我想做的只是更改开始和结束索引,是否有任何简单的方法可以做到这一点,而无需每次都创建新副本?我只会使用对原始数组的引用。

感谢您的帮助。

克里斯

最佳答案

您无法使用标准 JavaScript 数组创建数组子集的“ View ”。您可以使用新的 typed arrays 来做到这一点,但新的类型化数组仅提供各种数字格式的存储。您的变量名称(o1 等)建议改为对象引用。

对于标准数组,您可以使用函数代替:

function subMapper(array, index, length) {
return function(i, value) {
if (index + i >= length) {
// Beyond the end of the array, do what you think is appropriate
}
if (arguments.length === 1) {
// Getting a value
return array[index + i];
}
// Setting a value
array[index + i] = value;
};
}

var origArr = [o1, o2, o3, o4, o5];
var subArrMapper = subMapper(origArr, 1, 4);
var x = subMapper(0);
console.log(x === o2); // true

关于Javascript在创建子数组时使用原始数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213048/

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