gpt4 book ai didi

javascript - 在 JavaScript 中存储/读取大型矩阵的最佳方式是什么?

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

我有 10000 个项目,我需要创建一个 10000 行 * 10000 列的矩阵。如果我使用一维数组,那么它会很大。另外,我想为单元格 (i,j) 设置一些值,其中 0< i, j < 10000,所以这将是很多次迭代。

我想不出任何主意。那么在 node/javascript 中最好的方法是什么?

最佳答案

所有示例将表示以下矩阵,其中 0 表示没有值:

| - - - - - - - |
| 0 | 0 | 2 | 4 |
| - - - - - - - |
| 1 | 0 | 0 | 3 |
| - - - - - - - |
| 0 | 2 | 4 | 6 |
| - - - - - - - |
| 5 | 0 | 2 | 0 |
| - - - - - - - |

如果您需要内存中的所有单元格,因此您需要保持 10,000 x 10,000 大小的二维数组,我看不出解决方法。

选项 1 示例(行和列从零开始):

var matrix = [[0,0,2,4],[1,0,0,3],[0,2,4,6],[5,0,2,0]];

如果没有,您可以保留一个一维数组,例如使用 xy 属性指向给定单元格的对象。

选项 2 示例(为简单起见,行和列基于 1):

var matrix = [
{x: 3, y: 1, value: 2},
{x: 4, y: 1, value: 4},
{x: 1, y: 2, value: 1},
{x: 4, y: 2, value: 3},
{x: 1, y: 3, value: 2},
{x: 2, y: 3, value: 4},
{x: 3, y: 3, value: 6},
{x: 1, y: 4, value: 5},
{x: 3, y: 4, value: 2}
];

如果您需要快速搜索和访问,您可以使用对象,其中对象属性名称是例如 row 索引,每个属性值是一个具有 column 索引作为属性,它们的值是单元格值。请注意,对象属性是表示数字的字符串,因为数字不能用作属性名称。

选项 3 示例(为简单起见,行和列基于 1):

var matrix = {
'1': {
'3': 2,
'4': 4
},
'2': {
'1': 1,
'4': 3
},
'3': {
'2': 2
'3': 4,
'4': 6
},
'4': {
'1': 5,
'3': 2
}
};

// Get value of cell (col: 3, row: 4)
console.log(matrix['4']['3']);
// Set value of cell (col: 2, row: 3)
matrix['3']['2'] = 100;

// Check if cell (col: 1, row: 1) has value
var hasValue = matrix['1'] !== undefined && matrix['1']['1'] !== undefined;

关于javascript - 在 JavaScript 中存储/读取大型矩阵的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41715303/

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