我有一个表示为
的玩家列表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;
}
}
}
}
}
}
}
答案 0 :(得分:0)
根据您的评论,您需要一个更像这样的结构
var activeRange = [
{
name: 'mitch',
otherData: [
10,
11,
12,
13
]
},
{
name: 'viper',
otherData: [
//values
]
}
]
您可以通过activeRange[0].otherData[2]
添加到它,只需推入子数组activeRange[0].otherData.push(newValue)