gpt4 book ai didi

google-apps-script - Google Apps 脚本在数组中查找值

转载 作者:行者123 更新时间:2023-12-02 02:27:06 24 4
gpt4 key购买 nike

我不知道如何检查数组中是否存在某个值。我认为这应该非常简单,但无法实现。

我有这个代码:

function findPlayer() {
//This section gets the values from the first row of all the columns
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Players");
var lastColumn = ss.getLastColumn()
var playerNameRow = ss.getRange(1, 2, 1, lastColumn - 3);
var playerNameValues = playerNameRow.getValues();

//This just sets the value we're looking for (which in this example is in the 7th Column "G"). And logs the Array, just to check it.
var findPlayer = "Dan";
Logger.log(playerNameValues)


//and here we just loop through the playerNameValues array looking for the findPlayer value
for(var n in playerNameValues){
if(playerNameValues[n][0]== findPlayer) {break}
}

//and here, if the above search does find the matching value it should log it
Logger.log(n);
}

发生的情况是,playerNameValue 记录正确,但 n 始终记录为 0。这意味着它在检查的第一个项目中查找值,而不是该值所在的第 7 列。

最佳答案

我注意到您提到玩家是第 7 列。请注意,您实际检查的是

第 1 行第 1 列第 2 行第 1 列第 3 行第 1 列

除了第一列之外,永远不要真正触摸任何列,因为 if(playerNameValues[n][0]== findPlayer) {break} 中有 [0] >。相反,这样做(我假设您已经有 var ivar n)

for (i = 0; i < playerNameValues.length; i++) {
for (n = 0; n < playerNameValues[i].length; n++) {
if (playerNameValues[i][n] == findPlayer) break
}
if (playerNameValues[i][n] == findPlayer) break
}

我们进行第二次中断来跳出第二个循环,但是有更好的方法来编写该代码,这只是为了说明您需要做什么。

关于google-apps-script - Google Apps 脚本在数组中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41379965/

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