老师,为什么不是直接输出arr的包含女生的项,而是输出: [Array(3), Array(3), Array(3)]呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
// ***********************************方法一
// var arr = [
// ["小慕", "男", 23],
// ["小欧", "女", 22],
// ["小课", "男", 24],
// ["小时", "女", 22],
// ["小码", "女", 20],
// ];
// var newArr = [];
// for (var i = 0; i <= arr.length - 1; i++) {
// for (var j = 0; j <= 2; j++) {
// if (arr[i][j] == "女") {
// newArr[i] = arr[i];
// }
// }
// }
// console.log(newArr);
// for (var k = 0; k <= newArr.length - 1; k++) {
// if (newArr[k] == undefined) {
// newArr.splice(k, 1);
// }
// }
// console.log(newArr);
// 老师,想这里这里的结果为什么不是直接输出arr的包含女生的项,而是输出: [Array(3), Array(3), Array(3)]呢?
// **************************************************方法二
// var arr = [
// ["小慕", "男", 23],
// ["小欧", "女", 22],
// ["小课", "男", 24],
// ["小时", "女", 22],
// ["小码", "女", 20],
// ];
// var newArr = [];
// for (var i = 0; i <= arr.length - 1; i++) {
// for (var j = 0; j <= 2; j++) {
// if (arr[i][j] == "女") {
// newArr.push(arr[i]);
// }
// }
// }
// console.log(newArr);
// 老师,这里也有35行相同的问题
</script>
</body>
</html>
正在回答
同学你好,因为每个女生的信息是保存在一个数组中,即: ["小码", "女", 20], 然后将这个数组添加到新数组newArr中,最后输出的是newArr这个数组,由于浏览器控制台自身的展示机制,导致展示结果为: [Array(3), Array(3), Array(3)]。
可以通过点开左侧的展开符号,查看里面的详细信息,如下:
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星