Angular 8 - Искать элемент в локальном хранилище - PullRequest
0 голосов
/ 06 августа 2020

Как мне искать по модели или году в массиве, хранящемся в localstorage? Мой массив в localstorage key: cars Значение: 0: {модель: "Модель 1", год: "2020"} 1: {модель: "Модель 2", год: "2019"}

форма

<form>
    <table>
        <tr>
            <td>
                <label>Model:</label>
                <input type="text" class="" name="modelCar"
                [(ngModel)]="modelCar"/>
            </td>
        </tr>
        <tr>
            <td>
                <label>Year:</label>
                <input type="text" class="" name="year"
                [(ngModel)]="year"/>
            </td>
        </tr>
        <tr>
            <td>
                <input type="submit" value="Search" class=""
             (click)="search()" />
            </td>
        </tr>
    </table>

  </form>

CarComponent

@Component({
selector: 'car-data',
templateUrl: './car.component.html',
})
export class CarComponent {
model: string;
year: number;

search() {
//Array in localstorage
localStorage.setItem("car", JSON.stringify(this.cars));
var storedNames = JSON.parse(localStorage.getItem("cars"));
console.log(storedNames);
console.log('Search');
}

}

1 Ответ

0 голосов
/ 06 августа 2020

Для поиска определенного элемента в массиве вы должны использовать find. Синтаксис следующий:

const search = this.storedNames.find((car) => (car.model === "Search term.."));

Вы можете заменить значение в соответствии с вашими потребностями, передав параметр в функции поиска. Если вы просто хотите ввести значение и проверить, соответствует ли какой-либо параметр.

const search = this.storedNames.find(car => {const values = Object.values(car); return values.includes("search term...");})
...