我有 2 个数组,我想在第一个数组中找到第二个数组的值是第一个数组的推送数据,但我不能。
错误消息:“TypeError:找不到包含在对象中的函数...”
这是我的代码:
function loadArrInArr(){
var firstArr = ["aaa", "bbb", "ccc"];
var ss = SpreadsheetApp.openByUrl(urldb);
var ws = ss.getSheetByName("sheet1");
var secondArr = ws.getDataRange().getDisplayValues();
var tmpArr = [];
for(var i = 0; i < secondArr.length; i++){
if(firstArr.includes(secondArr[i][0])){ //err this line
tmpArr.push(secondArr[i]);
}
}
}
最佳答案
很遗憾,在当前阶段,includes()
还不能与 Google Apps Script 一起使用。那么这个修改怎么样呢?在这个修改中,使用indexOf
代替includes
。
模式一:
当你的脚本被修改时,这个修改怎么样?
来自:
if(firstArr.includes(secondArr[i][0])){
收件人:
if(firstArr.indexOf(secondArr[i][0]) > -1){
或
if(~firstArr.indexOf(secondArr[i][0])){
模式二:
作为另一种模式,这个修改怎么样?
来自:
var tmpArr = [];
for(var i = 0; i < secondArr.length; i++){
if(firstArr.includes(secondArr[i][0])){ //err this line
tmpArr.push(secondArr[i]);
}
}
收件人:
var tmpArr = secondArr.filter(function(row) {return ~firstArr.indexOf(row[0])});
- 当
secondArr
的长度较大时,使用filter()
可以比for循环减少处理成本。
引用资料:
- > Basic JavaScript features
- > includes()
- > indexOf()
- > Benchmark: Loop for Array Processing using Google Apps Script
如果我误解了您的问题并且这不是您想要的结果,我深表歉意。
关于javascript - GSA 错误 : Cannot find function includes in object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57505337/