我如何用
namaPenumpang
中的值填充席位数组中未定义的值
我的代码
我尝试过使用
for
循环它有效
var kursi = [undefined, "galih"];
function tambahPenumpang(namaPenumpang, kursi) {
// jika angkot masih kosong
if (kursi.length == 0) {
kursi.push(namaPenumpang);
return kursi;
} else {
for (let i = 0; i < kursi.length; i++) {
if (kursi[i] === undefined) {
kursi[i] = namaPenumpang;
return kursi;
} else if (namaPenumpang === kursi[i]) {
console.log("Kursi ini sudah terisi oleh " + kursi[i]);
return kursi;
} else if (kursi[i] !== undefined) {
kursi.push(namaPenumpang);
return kursi;
}
}
}
}
我的代码如何使用
map()
工作?
请帮我解决这个问题,如何使用值 namaPenumpang 替换索引处值为 unndefined 的数组内容
map
始终返回相同大小的数组。所以您无法添加新项目。
您的代码逻辑可能没有达到您的预期。
以下是一些修改:
let arr = ["x", undefined, "z"];
function tambahPenumpang(namaPenumpang, kursi) {
// it is confusing to modify the original array and return it
// so we create a new array and leave the original array untouched
const newArr = [...kursi];
if (newArr.includes(namaPenumpang)) {
console.log("Kursi ini sudah terisi oleh " + namaPenumpang);
return newArr;
}
for (let i = 0; i < newArr.length; i++) {
if (newArr[i] === undefined) {
newArr[i] = namaPenumpang;
return newArr;
}
}
// if we reach here, then it was not added
newArr.push(namaPenumpang);
return newArr;
}
arr = tambahPenumpang("x", arr); // Kursi ini sudah terisi oleh x
console.log(arr); // ["x", undefined, "z"]
arr = tambahPenumpang("y", arr);
console.log(arr); // ["x", "y", "z"]
arr = tambahPenumpang("a", arr);
console.log(arr); // ["x", "y", "z", "a"]
您可以获得与地图功能相同的功能。
var kursi = [undefined, "galih"];
function tambahPenumpang(namaPenumpang, kursi) {
kursi = kursi.map((penumpang) => {
if (penumpang === undefined) {
return namaPenumpang;
} else {
return penumpang;
}
});
return kursi;
}