我创建了一个用于使用Google表格工作的电子表格。它运作良好,但是我想通过学习JavaScript来增强它,因此我编写了一个简单的复制粘贴功能,效果确实很好。
为了使将来更容易更改值,我正在尝试将所有内容添加到数组中并创建一个for循环。我以前从未做过,因此,如果它看起来很糟糕,请原谅我,但这是我创建的数组:
var rangesAndValues = {
"0" : {
range : "C3",
value : ""
},
"1" : {
range : "C5:C7",
value : 0
},
"2" : {
range : "C9",
value : 0
},
"3" : {
range : "G3:G10",
value : 0
},
"4" : {
range : "J3",
value : "No"
},
"5" : {
range : "J5",
value : "No"
},
"6" : {
range : "J7",
value : 0
},
"7" : {
range : "J9",
value : 0
},
"8" : {
range : "M3:M10",
value : 0
},
"9" : {
range : "O3:O10",
value : 0
},
"10" : {
range : "Q3:Q10",
value : ""
},
"11" : {
range : "S3:S10",
value : 0
}
};
然后我尝试将其循环并进行console.log记录以确保其正常工作。
rangesAndValues.forEach(function(element){
console.log(element);
});
我在控制台中收到此错误:
Uncaught TypeError: rangesAndValues.forEach is not a function at window.onload
最终,我希望它为0-11循环一个函数,为1-11循环另一个(跳过0)。
我也不知道如何在工作时跳过第一个,所以如果您也回答的话,布朗尼也很重要。谢谢!
答案 0 :(得分:0)
forEach是Array原型上的一种方法,但是那里有一个Object。您可以获取对象的键,进行遍历,然后按键获取值,如下所示:
var keys = Object.keys(rangesAndValues)
keys.forEach(function(key){
var element = rangeAndValues[key];
console.log(element);
});
答案 1 :(得分:0)
您需要for..in
才能遍历对象
var rangesAndValues = {
"0": {
range: "C3",
value: ""
},
"1": {
range: "C5:C7",
value: 0
},
"2": {
range: "C9",
value: 0
},
"3": {
range: "G3:G10",
value: 0
},
"4": {
range: "J3",
value: "No"
},
"5": {
range: "J5",
value: "No"
},
"6": {
range: "J7",
value: 0
},
"7": {
range: "J9",
value: 0
},
"8": {
range: "M3:M10",
value: 0
},
"9": {
range: "O3:O10",
value: 0
},
"10": {
range: "Q3:Q10",
value: ""
},
"11": {
range: "S3:S10",
value: 0
}
};
for (let keys in rangesAndValues) {
console.log(rangesAndValues[keys])
}
答案 2 :(得分:0)
您正在尝试在对象上使用数组方法forEach
可以遍历对象值
Object.values(rangesAndValues).forEach(function(element){
console.log(element);
});
Object.values
为您提供一个数组,然后您可以使用forEach