Поскольку вы используете цикл for
, поэтому каждый раз, когда он просто перезаписывает , вы присваиваете последнее значение. Вы можете попробовать это с помощью Array.prototype.find () . Также у вас есть некоторые проблемы с анализом данных localStorage внутри вашей функции search(e)
, здесь вы не сохраняете их в переменной ls
перед выполнением любой операции поиска / поиска
См. Рабочую демонстрацию https://jsfiddle.net/ttr80ona/
let ls = [{name: "california",artist: "blink182",year: 2016,num: 28},{name: "chuck",artist: "sum41",year: 2004,num: 13}];
localStorage.setItem("songs", JSON.stringify(ls));
document.getElementById("btn").addEventListener("click", search);
function search(e) {
let ls = JSON.parse(localStorage.getItem("songs")); //I've modified here
let inputVal = document.getElementById("input").value;
let outputVal = document.getElementById("output");
var status = ls.find(elm => elm.name === inputVal);
if (status)
outputVal.innerHTML = "YES";
else
outputVal.innerHTML = "NO";
e.preventDefault();
}