2016-09-06 9 views
2

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

Пример:

"213-46-8915": идентификатор
"Database Занят исполнительной властью Guid": Название

<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() 
+1

Я думаю, что ты не хотел, чтобы выбрать C# 's, но LINQ [jslinq] (https://jslinq.codeplex.com/) в качестве тега –

ответ

0

Согласно documentation, сначала необходимо позвонить 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 
0

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

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);