我正试图从对象属性的特定索引中获取一个值。我使用了push函数将值推送到对象属性,但当我调用result.marks[0]
时,它会返回数组中的所有值。
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
let result = {
marks: [], //
};
const n = 5;
let text = "";
for (let i = 0; i < n; i++) {
text += prompt("Enter value of " + i, i) + "<br>";
}
result.marks.push(text);
document.getElementById("demo").innerHTML = result.marks[0]; // it does not print the specific index value.it return the whole values in an array.
}
catch (err) {
document.write(err);
};
</script>
</body>
</html>
在循环中,将所有输入连接在一个字符串中,并将该字符串推送到数组中。
loop 1: text="0<br>"
loop 2: text="0<br>1<br>"
and so on.
在循环结束时,文本值为"0<br>1<br>2<br>3<br>4<br>5<br>"
,然后将其推送到数组
因此,当您获取index 0元素时,它会返回包含所有值的字符串。您可以做的是停止串联并将每个输入推送到循环内的数组
<html>
<body>
<p id="demo"></p>
<script>
try {
let result = {
marks: [], //
};
const n = 5;
let text = "";
for (let i = 0; i < n; i++) {
text = prompt("Enter value of " + i, i) + "<br>";
result.marks.push(text)
}
document.getElementById("demo").innerHTML = result.marks[1]; // it now returns value from specific index.
}
catch (err) {
document.write(err);
};
</script>
</body>
</html>