Javascript 如果inp1值为“1”,为什么两个名称都不出现;d";?

Javascript 如果inp1值为“1”,为什么两个名称都不出现;d";?,javascript,Javascript,我希望两个名称都显示在主元素中,但只显示数组的姓氏 let arr = [ { name: "dave" }, { name: "david" } ]; inp1.oninput = function(){ console.log(inp1.value) for (var i = 0; i < arr.length; i++) { if (arr[i].name.includes(inp1.v

我希望两个名称都显示在主元素中,但只显示数组的姓氏

  let arr = [
    {
      name: "dave"
    },
    {
      name: "david"
    }
  ];

  inp1.oninput = function(){
    console.log(inp1.value)
    for (var i = 0; i < arr.length; i++) {
      if (arr[i].name.includes(inp1.value)) {
        main.innerHTML = `
        <p>${arr[i].name}</p>
        `
        console.log(arr[i].name)
      }
    }
  }
让arr=[
{
姓名:“戴夫”
},
{
姓名:“大卫”
}
];
inp1.oninput=函数(){
console.log(inp1.value)
对于(变量i=0;i
`
console.log(arr[i].name)
}
}
}

但在console.log中,这两个名称都会出现,而不是出现在DOM中。

您认为
=
操作符的作用是什么?;)好吧,它会用arr[i]生成一个p-tag,但我会细化它,它会为循环的两个迭代生成一个p-tag?@Mr.Ulis确实如此,但每次都会覆盖上一个。如果要添加内容而不删除上一个内容,可以使用
+=
(相当于
x=x+'foo'
)不完全是,它将文本设置为dave,然后将文本设置为david(如中所示,覆盖)。你需要把这些字符串连接在一起。@Mr.Ulis我想你终于明白我的意思了,还有其他的评论,但是
=
与“制作p标签”无关。它为变量或(如此处所示)对象属性赋值。我试图让你意识到,分配多次与只分配一次完全相同,最后分配一个值。