gpt4 book ai didi

javascript - 如何在 JavaScript 中插入二维数组的第二维?

转载 作者:行者123 更新时间:2023-11-27 23:51:21 27 4
gpt4 key购买 nike

我有一个玩家列表,表示为

activeRange[x]

其中 x 每天都会变化。

每个 x 值都必须有至少 4 个以上的后续值(可能更多一些)。理想情况下,我希望数组看起来像:

activeRange[x][y]

这就是我到目前为止所做的:

var MATCH = AllData[TotalRows][TotalColumns+1];
activeRange[TotNumPlayers].push(MATCH);

这全部位于 3 个嵌套的 for 循环内。

TotNumPlayers 

将迭代在开头声明的给定集合(有点像 23)。完成后,

TotalRows 

将迭代,然后最终

TotalColumns

我遇到以下错误:

TypeError: Cannot find function push in object mitch

mitch 是 activeRange[0] 的值。我已经盯着这个方式太久了,所以任何帮助将不胜感激!

编辑:下面插入的代码:请忽略所有评论。我从昨天使用的一些代码中复制/粘贴了此代码来执行不同的功能。这是我第二次在这个网站上发帖,所以尝试将这个怪物格式化得漂亮听起来很可怕。希望这足够好。

这就是 activeRange 的声明和初始化方式。

var activeRange = new Array();
for (var b=0; b<=lastRow-2; b++){
activeRange[b] = sheetRANK.getRange(b+2,1).getValue();
}

这就是函数。

function getTotalScore(activeRange, w) {
Logger.clear()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetWAR = ss.getSheetByName('WAR');
var sheetRANK = ss.getSheetByName('RANK');

var AllData = sheetRANK.getDataRange().getValues();
Logger.log('First');
for (var TotNumPlayers = 0; TotNumPlayers <= activeRange.length; TotNumPlayers++) {
Logger.log('Second');
var f = 0;
for (var TotalColumns = 0; TotalColumns <= AllData[0].length; ++TotalColumns) { // Init n. If n <= the total columns (second dimension), inc n.
Logger.log('Third');
for (var TotalRows = 0; TotalRows <= AllData.length; ++TotalRows) { // Init i. If i <= the total rows (first dimension), inc i.
Logger.log('Fourth');
//try{ // to avoid errors.
if (activeRange[TotNumPlayers] != "") {
Logger.log('Here?');
if (AllData[TotalRows][TotalColumns].valueOf().toUpperCase() == activeRange[TotNumPlayers].toUpperCase()) {
Logger.log('How About Here?');
var MATCH = AllData[TotalRows][TotalColumns + 1];
activeRange.push(TotNumPlayers, MATCH);
for (var Calc = 0; Calc <= activeRange[TotNumPlayers].length - 1; Calc++) {
var OverallScore = ((activeRange[TotNumPlayers][0] * 1.0) + (activeRange[TotNumPlayers][1] * .75) + (activeRange[TotNumPlayers][2] * .50) + (activeRange[TotNumPlayers][3] * .25));
sheetRANK.getRange(activeRange[TotNumPlayers] + 1, 2).setValue(OverallScore);

f = f + 1;
}
if (TotalRows == AllData.length - 1 && TotalColumns == AllData[0].length - 1 && f == 0) {
Browser.msgBox('No names matching \'' + activeRange[TotNumPlayers] + '\' found. Check your spelling!');
return;
}
}
}
}
}
}
}

最佳答案

尝试考虑可以使用哪种数据结构来让您的生活更轻松。对于这种特殊情况,您有一个想要将某些数据与其关联的玩家列表。您可能会使用如下结构:

activeRange = [
{
name: 'mitch',
data: []
}
]

当您想要更新数据时,只需调用activeRange[0].data.push(someData)即可。

activeRange 是一个玩家数组,每个玩家都由具有某些属性(名称、数据等)的对象表示。调用 activeRange[0] 会生成数组中的第一个玩家,而 activeRange[0].data 将生成与该玩家关联的数据,然后您可以根据需要对其进行操作(弹出等)

关于javascript - 如何在 JavaScript 中插入二维数组的第二维?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32676084/

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