var currentbutton = {};
function setPreset(obj) {
try{
if(obj.name===name && obj.value===value){
//log.error("preset array's OID at position ["+index+"] is"+presets[index].name +" and the value stored is "+presets[index].value);
currentbutton.name=obj.name;
currentbutton.value=obj.value;
log.error("currentbutton name= "+currentbutton.name+ "currentbutton value= " + currentbutton.value );
}
else
log.error("adklafjklajkl");
}
catch(ie){
log.error("couldn't set preset");
}
presets.forEach(function(obj));
我知道在我编写的代码中一定有错误,首先,我被告知函数需要接收一个对象作为参数,我不知道如何将它传递给函数。我试过谷歌,但我没有找到任何关于函数是否可以接收对象作为参数的相关信息。 presets是一个包含具有两个属性的对象的数组(名为" name"和" value") 基本上,数组Presets使用forEach遍历其枚举的变量列表,并比较参数obj的名称和值是否与存储在数组中的任何对象相同或不相同,如果它们相同,则设置currentbutton& #39;参数obj中的名称和值。然后我们将有其他功能,这些功能将在当前按钮上运行,我不必担心。 我知道它并不是很清楚,因为我甚至不确定那是不是我想要的东西。
答案 0 :(得分:1)
您不太了解forEach
的工作原理。 forEach
方法将函数作为其参数:
[1,2,3].forEach(function(item) {
alert(item);
});
传递给forEach
的函数本身就有一个参数。在这里,我将其命名为item
。 forEach
方法重复调用函数,并在每次调用时提供数组的连续成员作为第一个参数。
现在,我可以使用变量来保存我的函数,而不是传入一个文字函数:
var alertStuff = function(item) {
alert(item);
}
然后,我在forEach
中使用该函数(通过变量名引用):
[1,2,3].forEach(alertStuff);
// is the same as...
[1,2,3].forEach(function(item) {
alert(item);
});
因此,您想使用presets.forEach(setPreset);
。
答案 1 :(得分:0)
定义一个接受参数的函数
function myNewFunc(obj){
alert(obj.myFirstProp);
}
定义一个我们将作为参数传递给上述函数的对象
var myObject = {
myFirstProp: "testing"
};
调用该函数并将该对象作为参数传递
myNewFunc(myObject);
答案 2 :(得分:0)
你的括号被搞砸了,你调用了forEach
错误。
var presets = [
{name:'a', value:1},
{name:'b', value:2},
{name:'c', value:3},
];
var currentbutton = {};
function setPreset(obj) {
try{
if(obj.name===name && obj.value===value){
//log.error("preset array's OID at position ["+index+"] is"+presets[index].name +" and the value stored is "+presets[index].value);
currentbutton.name=obj.name;
currentbutton.value=obj.value;
log.error("currentbutton name= "+currentbutton.name+ "currentbutton value= " + currentbutton.value );
} else { // syntax error, opening { of else block was missing
log.error("adklafjklajkl");
}
} // syntax error, closing } of try block was missing
catch(ie){
log.error("couldn't set preset");
}
} // syntax error, closing } of function was missiong
presets.forEach(setPreset);