javascript - 在我的程序中有一个我无法检测到的错误
问题描述
好的,这是对我之前提出的关于数组的问题的跟进。事实证明你的回答很有帮助,但我的程序仍然无法运行。我将解释作业,然后发布代码,以便您了解问题所在。所以我有一个带有未排序汽车列表的 html 页面。每辆车都有一把钥匙、一个制造商和一个型号。页面底部有一个用于插入新车的表格和两个按钮。通过单击一个按钮,您需要使用插入的数据创建一个代表汽车的对象。该对象需要添加到全局数组中。还有另一个按钮,它的任务是将对象从全局数组的中间插入到 html 列表中(这就是我之前的问题所涉及的)。然后需要从数组中删除对象。如果数组为空,需要有一条消息以红色显示“数组为空”。这是我做的方式,但是有一条错误消息说“未捕获的类型错误:无法读取未定义的属性(读取'键')”请帮忙,我想知道你会怎么做。
let globalArray = [];
function add() {
var key = document.querySelectorAll("input")[0];
var manufacturer = document.querySelectorAll("input")[1];
var model = document.querySelectorAll("input")[2];
var car = {
key: key.value,
manufacturer: manufacturer.value,
model: model.value
}
globalArray.push(car);
}
function fill(){
if (globalArray.length == 0){
let msg = document.querySelector("p");
msg.innerHTML = "The array is empty.";
msg.style.color = "red";
}
else {
if(globalArray.length % 2 == 0) {
let list = document.querySelectorAll("ul");
let li = document.createElement("li");
li.innerHTML = `${globalArray[globalArray.length / 2 - 1].key}
${globalArray[globalArray.length / 2 - 1].manufacturer} ${globalArray[globalArray.length / 2 - 1].model}`;
lista.appendChild(li);
globalni.splice(globalArray[globalArray.length / 2 - 1], 1);
}
else {
let list = document.querySelectorAll("ul");
let li = document.createElement("li");
li.innerHTML = `${globalArray[Math.round(globalArray.length / 2)].key} ${globalArray[Math.round(globalArray.length / 2)].manufacturer} ${globalArray[Math.round(globalArray.length / 2)].model}`
lista.appendChild(li);
globalArray.splice(globalArray[Math.round(globalArray.length / 2)], 1);
}
}
}
解决方案
推荐阅读
- apache-kafka - 如何连接到内部 Kafka 集群
- r - 如何在 Rselenium R 中捕获动态 xpath id
- php - LeagueCSV:getRecords() 上的未定义索引
- pthreads - 在 C 中使用 pthread_mutex 同步分叉进程
- javascript - 未调用 jsgrid 控制器 updateItem
- excel - 从一个工作簿复制随机数据并将其粘贴到另一工作簿的同一行但不同列中
- c++ - 如何将对象的构造限制为几种方法?
- localhost - 是否可以在本地系统(非容器)上安装 Tekton
- python - 如何使用 Django 显示具有特定 ID 的学生姓名
- android - 对 RealmList 进行分区的最佳方法是什么