Как получить название книги с определенным идентификатором, используя linqjs

У меня есть массив JavaScript с объектами в нем, которые содержат идентификатор, название книги usw, мне нужно найти его и получить заголовок с заданным идентификатором, предпочтительно с linqjs.

Пример:

"213-46-8915": id
"Руководства по базе данных занятого руководителя": Название

<script>
   var books = [];
   books.push(["213-46-8915" , "The Busy Executive's Database Guid",19.9900,2]);
   books.push(["211-44-2314" , "The Busy Executive's Database Guid",14.4100,5]);
</script>

Моя попытка:

var filtered = Enumerable
                .From(books)
                .Where(function (x) {return x.contains(id);})
                .Select(function (x) {return x;})
                .ToArray()

2 ответа

Решение

Согласно документации, вы должны позвонить JSLINQ(array) первый.

Итак, для вашего примера. Это должно работать. Также я преобразовал ваш массив в объект

var books = [];
books.push({
    id: "213-46-8915",
    title: "The Busy Executive's Database Guid",
    price: 19.9900,
    quantity: 2
});

var filtered = JSLINQ(books)
               .Where(function(item) { return item.id == "213-46-8915"; })
               .Select(function(item) { return item; });

console.log(filtered.id); //213-46-8915 

Вы можете сделать это с простым JavaScript очень просто. Вот код, который возвращает массив ваших книг, отфильтрованных по идентификатору.

var books = [];
books.push(["213-46-8915" , "The Busy Executive's Database Guid",19.9900,2]);
books.push(["211-44-2314" , "The Busy Executive's Database Guid",14.4100,5]);
var id = '211-44-2314';
var result = books.filter(function(b){ return b[0]==id; });
console.log(result);

Другие вопросы по тегам