Javascript 如何在数组中添加项并替换数组中的项?

Javascript 如何在数组中添加项并替换数组中的项?,javascript,Javascript,编写一个程序来填写客人名单。如果客人被邀请,就让他们进去;如果没有,就把它放在垃圾箱上 我的代码: const-account=document.getElementById(“account”); const拒绝=document.getElementById(“拒绝”); 承认。textContent=“承认:”; 拒绝。textContent=“拒绝:”; 康斯特人=[ “克里斯”, “安妮”, “科林”, “特里”, “菲尔”, “萝拉”, “山姆”, “凯”, “布鲁斯”, ]; fo

编写一个程序来填写客人名单。如果客人被邀请,就让他们进去;如果没有,就把它放在垃圾箱上

我的代码:

const-account=document.getElementById(“account”);
const拒绝=document.getElementById(“拒绝”);
承认。textContent=“承认:”;
拒绝。textContent=“拒绝:”;
康斯特人=[
“克里斯”,
“安妮”,
“科林”,
“特里”,
“菲尔”,
“萝拉”,
“山姆”,
“凯”,
“布鲁斯”,
];
for(设i=0;i
我让程序运行起来了

Admit:  Chris, Anne, Collin,Terri,Sam,Kay,
Refuse:  Phil,Lola,
但是我正在尝试解决如何添加
,并用
替换

以下是我想要的输出:

Admit:  Chris, Anne, Collin,Terri, Sam, Kay, and Bruce.
Refuse:  Phil and Lola.
const people=['Chris','Anne','Colin','Terri','Phil','Lola','Sam','Kay','Bruce'];
常量承认=[];
常量拒绝=[];
为了(让人成为人){
(person==“菲尔”| person==“萝拉”?拒绝:承认)。推(person);
}
常量文本=(数组)=>{
让multipleNames=array.length>1;
返回“${array.slice(0,-1).join(“,”)}${multipleNames?”和“:”}${array.slice(-1)[0]}.”;
};
admit.textContent=`admit:${toText(admit)}`;
拒绝.textContent=`拒绝:${toText(拒绝)}`;
console.log(admit.textContent);
console.log(拒绝.textContent)
const people=['Chris','Anne','Colin','Terri','Phil','Lola','Sam','Kay','Bruce'];
常量承认=[];
常量拒绝=[];
为了(让人成为人){
(person==“菲尔”| person==“萝拉”?拒绝:承认)。推(person);
}
常量文本=(数组)=>{
让multipleNames=array.length>1;
返回“${array.slice(0,-1).join(“,”)}${multipleNames?”和“:”}${array.slice(-1)[0]}.”;
};
admit.textContent=`admit:${toText(admit)}`;
拒绝.textContent=`拒绝:${toText(拒绝)}`;
console.log(admit.textContent);
console.log(拒绝.textContent)您可以尝试下面的代码。有条件地添加和逗号。
const-account=document.getElementById('account');
const拒绝=document.getElementById('拒绝');
admit.textContent='admit:';
拒绝.文本内容='拒绝:';
const people=['Chris','Anne','Colin','Terri','Phil','Lola','Sam','Kay','Bruce'];
对于(设i=0;i),您可以尝试下面的代码。有条件地添加和和逗号。
const-account=document.getElementById('account');
const拒绝=document.getElementById('拒绝');
admit.textContent='admit:';
拒绝.文本内容='拒绝:';
const people=['Chris','Anne','Colin','Terri','Phil','Lola','Sam','Kay','Bruce'];
对于(让i=0;i试试这个:

const admit = document.getElementById("admit");
const refuse = document.getElementById("refuse");
admit.textContent = "Admit: ";
refuse.textContent = "Refuse: ";
const people = ["Chris", "Anne", "Colin", "Terri", "Phil", "Lola", "Sam", "Kay", "Bruce"];
let refusedPeople = [];
let admitedPeople = [];
people.forEach((person) => {
  person === "Phil" || person === "Lola" ? refusedPeople.push(person) : admitedPeople.push(person);
});

const genrateConcatString = (arr, person, index) => {
  let text = "";
  if (index === arr.length - 1) {
    arr.length === 1 ? (text += person + ".") : (text += " and " + person + ".");
  } else {
    index === arr.length - 2 ? (text += person) : (text += person + ", ");
  }
  return text;
};
refusedPeople.forEach((person, index) => {
  refuse.textContent += genrateConcatString(refusedPeople, person, index);
});

admitedPeople.forEach((person, index) => {
  admit.textContent += genrateConcatString(admitedPeople, person, index);
});
试试这个:

const admit = document.getElementById("admit");
const refuse = document.getElementById("refuse");
admit.textContent = "Admit: ";
refuse.textContent = "Refuse: ";
const people = ["Chris", "Anne", "Colin", "Terri", "Phil", "Lola", "Sam", "Kay", "Bruce"];
let refusedPeople = [];
let admitedPeople = [];
people.forEach((person) => {
  person === "Phil" || person === "Lola" ? refusedPeople.push(person) : admitedPeople.push(person);
});

const genrateConcatString = (arr, person, index) => {
  let text = "";
  if (index === arr.length - 1) {
    arr.length === 1 ? (text += person + ".") : (text += " and " + person + ".");
  } else {
    index === arr.length - 2 ? (text += person) : (text += person + ", ");
  }
  return text;
};
refusedPeople.forEach((person, index) => {
  refuse.textContent += genrateConcatString(refusedPeople, person, index);
});

admitedPeople.forEach((person, index) => {
  admit.textContent += genrateConcatString(admitedPeople, person, index);
});

这段代码有一个小问题。假设其中一个name不存在,那么它的响应将类似于
拒绝:而Bruce
它也在做`和${admit.slice(-1)[0]}`这应该是array.slice,我猜
const-toText=(array)=>{let-multipleNames=array.length>1;返回
${array.slice(0,-1)。join(“,”}${multipleNames?“and”:“}${array.slice(-1)[0]}.
;};
此代码有一个小问题。如果其中一个名称不存在,那么它将像
拒绝:和Bruce
它也在做`和${admit.slice(-1)[0]}`我想这应该是array.slice
const-toText=(array)=>{let multipleNames=array.length>1;返回
${array.slice(0,-1)。连接(“,”}${multipleNames?”和“:”}${array.slice(-1)[0]}。
;};