Поиск значение обьекта в массиве

368
14 февраля 2017, 20:43

Есть массив с обьектами

data = [{service_id: 7777}, {service_id:9999}]

у меня есть допустим переменная с айди

var myid = 9999

как мне проверить существование этого ади в массиве ?

средствами angularjs или javascript

Answer 1

Вот пример:

var data = [{service_id: 7777}, {service_id:9999}] 
function getServicebyId(id)  
{ 
  return data.filter( 
 function(data) 
     { return data.service_id== id}); 
} 
var myid = 9999 
var found = getServicebyId(myid); 
alert(found)

Answer 2

Можно использовать Array#some:

let data = [{service_id: 7777}, {service_id:9999}], 
    id   = 7777; 
 
let isFound = data.some(_ => _.service_id === id); 
 
console.info(isFound);

Answer 3

2)

var data = [ 
    { 
        "service_id": 7777, 
        "service_id": "9999" 
    } 
]; 
 
function getServicebyId(service_id) { 
    var found = null; 
 
    for (var i = 0; i < data.length; i++) { 
        var element = data[i]; 
 
        if (element.service_id == service_id) { 
           found = element; 
       }  
    } 
 
    return found; 
} 
 
console.info(getServicebyId(9999));

Answer 4

решил так

$scope.manageFavorService = function (serviceId) {
         var data = {};//sending an empty array to get response
         getService = serviceId;
         PortalApi.getFavorServices(data)//get an array with all favorites services
         .then(function(data) {
             function getFavorList(id)//looking if there already serviceId exist
             {
                 return data.filter(function(data)
                     { return data.service_id== id});
             }
             $scope.isFavorite = getFavorList(getService),
                 data = {serviceId:serviceId};
             if ($scope.isFavorite.length == 0) {//add favorite if in answer we got empty array
                 ******
             }
             else {//del favorite if in answer we got array with our service
             }
         });
     };
Answer 5

Прмер с условие if else

var data = [{service_id: 7777}, {service_id:9999}] 
function getServicebyId(id)  
{ 
  return data.filter( 
 function(data) 
     { return data.service_id== id}); 
} 
function isEmpty(value) { 
    if (!value) { 
      return true; 
    }     
    for (var key in value) { 
      if (hasOwnProperty.call(value, key)) { 
        return false; 
      } 
    } 
    return true; 
  } 
var myid = 19999 
var found = getServicebyId(myid); 
alert(found); 
if (!isEmpty(found)) alert("Yes"); else alert("No");

READ ALSO
Зачем нужны js фреймворки? [требует правки]

Зачем нужны js фреймворки? [требует правки]

Вопрос простойЗачем использовать фреймворки JS когда можно писать на том же jQuery?

455
I need to edit ready jquery script so it doen&#39;t result in &lt;a&gt; tag, but just in plain text [требует правки]

I need to edit ready jquery script so it doen't result in <a> tag, but just in plain text [требует правки]

The resulting code is in the following variable: +todayEvents+ I am really new to JQueryHow do i get it to output simple text?

312
Стоит ли по-разному называть JQuery и javascript переменные?

Стоит ли по-разному называть JQuery и javascript переменные?

Я слышал, что перед переменной jQuery следует ставить $, чтобы не путать их, это так?

245
Определение текста в элементе через jquery

Определение текста в элементе через jquery

Всем привет! Вопрос, собственно, в следующем:

303