第一个stackover流帖子!
我试图根据单击的“字符”按钮来更改结果。
因此,我从一个名为gendr = [];
的变量开始。
如果单击名为“ marge”的按钮,则margeFunction将运行,这会将值“ female”推入数组内部。 如果单击“ Henry”按钮,将运行henryFunction,它将值“ male”推入数组。
后面的函数包含if else语句,其中如果数组包含值male,则显示“ male句子”。 否则,如果数组值是女性, “出现女性句子。”
function helloFunction() {
if(gendr[female]) {
document.getElementById ('traitText').innerHTML = "and says the word hello in every sentence she speaks";
} else {
document.getElementById ('traitText').innerHTML = "and says the world hello in every sentence he speaks"
}
}
我不太确定该怎么做,我只是猜测了一下,但是我想知道正确的方法!在此先感谢:)
答案 0 :(得分:2)
gendr[female]
不起作用,因为没有female
变量,并且您不想访问数组中的female
位置,相反,听起来好像想要获取该数组的最后一个值。可以使用gendr[gendr.length - 1]
完成。现在,您要检查该值是否为"female"
,可以通过比较(===
)进行检查。
无论如何,如果您根本需要一个数组,那是有问题的,为什么不只保留一个布尔值(isFemale = false;
)?
答案 1 :(得分:1)
有多种方法可以实现您想要实现的目标。 indexOf
方法是检查数组中是否存在元素的有效方法。此外,ECMAScript 2016具有新方法includes
,用于检查数组中是否存在元素。
这是一个示例:
var gender = ['male', 'female'];
function checkInArray(genderArray) {
if(genderArray.indexOf('male') > -1) {
//do something
return 'male found';
} else {
//do something
return 'female found';
}
}
function checkInArray2(genderArray) {
return genderArray.includes('male');
}
console.log(checkInArray2(gender))
var array = [1,2,3,4,5];
array.includes(2); //true
array.includes(4); //true
array.includes(1, 2); //false (second parameter is the index position in this array at which to begin searching)
查看以下内容:https://playcode.io/373046
答案 2 :(得分:0)
问题的 HTML部分应如下所示
<button onclick="helloFunction('female')">Marge</button>
<button onclick="helloFunction('male')">Henry</button>
javascript 然后
function helloFunction(gendr) {
if(gendr=="female") ...
}
我相信您的问题更多是关于参数传递,而不是数组。