我有一个练习:
删除列表DOUBLOONS
创建Object类型的变量: var myObject = {} 要么 var myObject = new Object()
使用Service SpreadsheetApp获取水果列表。
固定二维数组并返回,在对象中为每个新水果创建一个新条目。
如果已经列出了水果,则增加1,该水果的计数器值。
myObject的结构示例: myObject = { “Apple”:1, “梨子:4 ...接送时段 } dropoff window
完成所有水果后,扣到myObject以构建一个包含2列(水果,列表中出现次数)的数据范围,并在D和E列中显示结果。
指示: 使用测试:if(myFruit in myObject){}来测试结果是否已经列出。
这是电子表格:
http://i.stack.imgur.com/DV4E1.png
结果必须是这样的:
http://i.stack.imgur.com/rqDFG.png
这个我的代码我被阻止了我现在不做什么请帮帮我
//VARIABLE GLOBALE : DECLARATION DES FEUILLES
var ui = SpreadsheetApp.getUi();
var mySpread = SpreadsheetApp.getActiveSpreadsheet();
// AJOUTE UN MENU PERSONNALIÉ DANS LA SPREADSHEET
function onOpen(e) {
ui.createMenu('Third-Step')
.addItem('Del duplicates', 'deldup')
.addToUi();
}
//SUPPRIMER LES DOUBLONS D’UNE LISTE
function deldup() {
var sheet = SpreadsheetApp.getActiveSheet();
var result = [];
if (sheet != null){
var myFruit = sheet.getRange(1, 1, sheet.getLastRow(), 3).getValues();
sheet.getRange(1, 4, sheet.getLastRow() - 1, 2).clearContent()
var i =0;
var myObject = {
"Pomme":[i],
"Poire":[i],
"Banane":[i],
"Pêche":[i],
"Carotte":[i]
};
for (var i=0; i< myObject.length; i++){
if(myFruit in myObject){
i += 1;
}
result.push(myObject);
}
sheet.getRange(1, 4, result.length, result[0].length).setValues(result);
}
else {
sheet.toast("The Sheet is empty !!")
}
}
答案 0 :(得分:1)
你好我的问题得到了很好的答案,对象必须是空的,所以如果有人需要它你可以检查它
//VARIABLE GLOBALE : DECLARATION DES FEUILLES
var ui = SpreadsheetApp.getUi();
var mySpread = SpreadsheetApp.getActiveSpreadsheet();
// AJOUTE UN MENU PERSONNALIÉ DANS LA SPREADSHEET
function onOpen(e) {
ui.createMenu('Third-Step')
.addItem('Del duplicates', 'deldup')
.addToUi();
}
//SUPPRIMER LES DOUBLONS D’UNE LISTE
function deldup(){
var sheet = SpreadsheetApp.getActiveSheet();
var myObject = {};
var myFruit = sheet.getRange(1, 1, sheet.getLastRow(), 3).getValues();
sheet.getRange(1, 4, sheet.getLastRow() , 2).clearContent();
for (var i=0; i< myFruit.length; i++){
for(var j=0; j < myFruit[i].length; j++){
if (myFruit[i][j] && myFruit[i][j] != "" && myFruit[i][j] != null ){
if (myFruit[i][j] in myObject){
myObject[myFruit[i][j]]++
}else{
myObject[myFruit[i][j]] = 1
}
}
}
}
var result = [];
for (var fruit in myObject){
result.push([
fruit,
myObject[fruit]
])
}
sheet.getRange(1, 4, result.length, 2).setValues(result);
}
希望有所帮助。
答案 1 :(得分:0)
您可以尝试使用此代码(已测试并正常工作):
function deldup(){
var sheet = SpreadsheetApp.getActiveSheet();
var i=0;
var results =[["Pomme", i], ["Poire", i], ["Pêche", i] ];
if (sheet != null){
var myFruit = sheet.getRange(1, 1, sheet.getLastRow(), 3).getValues();
sheet.getRange(1, 4, sheet.getLastRow() - 1, 2).clearContent();
var flag = 0;
for (var i=0; i< myFruit.length; i++){
for(var j=0; j < myFruit[i].length; j++){
if(results.length != 0){
for(var k=0; k < 10; k++){
if(myFruit[i][j] == results[k][0]){
results[k][1]++;
flag = 1;
break;
}
if(flag == 0 ){
results.push([myFruit[i][j], 1]);
}
}
}
else
results.push([myFruit[i][j], 1]);
}
}
sheet.getRange(1, 4, results.length, 2).setValues(results);
}
else {
sheet.toast("The Sheet is empty !!")
}
}
希望有所帮助!