【发布时间】:2019-01-27 21:47:54
【问题描述】:
我正在使用 javascript 在表格中显示我的数据,该表格显示了姓名、性别、外貌和年龄等列。
对于 Looks 列,我编写了一个脚本,如果性别为男性,该列应将 Looks 的值显示为“英俊”,如果性别为女性,列应将 Looks 的值显示为“beautiful”在价值中。
但它只显示男性和女性的“英俊”。
以下是我的代码:
var myObj = [{name: "Taimoor", sex: "male", age: "Thirty One"},{name:
"Nida", sex: "female", age: "Twenty Nine"}];
var table = "<tr><td>Name</td><td>Sex</td><td>Looks</td><td>Age</td>
</tr>";
function myLooks() {
for (ii in myObj) {
var looks = "";
if (myObj[ii].sex == "male") {looks = "handsome"}
else {looks = "beautiful"};
return looks;
}
}
for (i=0; i <myObj.length; i++) {
table += "<tr><td>" + myObj[i].name + "</td><td>" + myObj[i].sex + "
</td><td>" + myLooks() + "</td><td>" + myObj[i].age + "</td></tr>"
document.getElementById("demo").innerHTML = table;
【问题讨论】:
-
您应该使用
forEach或for(var i=0;i<myObj.length;i++){ myObj[i]...}而不是for和in -
而不是在
myLooks函数中使用循环,您应该将当前迭代中的值作为参数传递,并根据该值的属性返回一些内容。 -
return looks;必须在 for 循环之外。
标签: javascript