2013-04-20 7 views
-4

в приведенном ниже коде. Я хочу напечатать значения «years_of_experience», который меньше 34 и место рождения, равное «texas». Но я не получаю, как написать заявление правильноКак проверить свойства объекта, равные некоторому значению?

var employees = [ 
    { 
     name1:'jacob', 
     age2 : 23, 
     date_of_join : 23/03/2013, 
     years_of_experience : 12, 
     birth_place: "virginia" 
    }, 
    { 
     name2:'sheldon', 
     age2 : 34, 
     date_of_join :2/03/2013, 
     years_of_experience : 15, 
     birth_place: "lisbon" 
    }, 
    { 
     name3:'johnny', 
     age3 : 25, 
     date_of_join :29/03/2013, 
     years_of_experience : 13, 
     birth_place: "texas" 
    }]; 

    employees.forEach(function(a) { 
     console.log(a); 
    }); 
     for(var i = 0;i <= employees.length;i++) 
      { 
       if(employees[i]!= -1) 
       { 
        console.log("gotcha"); 
        if(employees.hasOwnProperty === years_of_experience) < 34 || (employees.hasOwnProperty(birth_place) === "teaxs") 
        { 
//here i want to print the values of 
// "years_of_experience" which is less than 34 and birthplace which is equal to 
// "texas".But i'm not getting how to write the statement for that become m new to 
// javascript and even m not sure i've written the conditional statement right, 
// please correct it and help me.. 


        } 
       } 
      } 
+0

[Любой конкретный вопрос?] (Http://stackoverflow.com/faq) – Lion

+0

если (сотрудников [я] [ "years_of_experience"] <34 || (сотрудников [i] ["birth_place"] === "texas") – mplungjan

+0

hey thanx Lion для записи условного оператора, но как я напечатаю значения, которые я получу из условия после получения истины. – user1976940

ответ

0

Попробуйте

if(employees[i].years_of_experience < 34 || employees[i].birth_place === "teaxs") 
+0

hey thanx как распечатать ценность «years_of_experience» и «texas» – user1976940

+0

console.log («Год опыта: \ n» + сотрудники [i] .years_of_experience + «\ nBirth Place:» + сотрудники [i] .birth_p кружева); –

+0

запятая лучше – mplungjan

0

Во-первых, вы неправильно «техас»

hasOwnProperty() является метод, а не свойство, а также его не вытягивает значение из свойства, он просто возвращает boolean того, имеет ли оно это свойство или нет.

Вы можете что-то вроде следующего

for (var i = 0; i < employees.length; i++) { 

    if (employees[i].hasOwnProperty("years_of_experience") && employees[i].hasOwnProperty("birth_place")) { 
     if (employees[i].years_of_experience < 34 || employees[i].birth_place === "texas") { 
      console.log("Year of Experience: \n" + employees[i].years_of_experience + "\nBirth Place: " + employees[i].birth_place); 
     } 
    } 
} 

jsFiddle: Проверьте вашу консоль.

Вы также должны изменить свой «date_of_join» в строку, если именно так вы хотите хранить даты. Прямо сейчас вы получаете очень неясное десятичное значение.

var employees = [{ 
    ... 
    date_of_join: "23/03/2013", 
    ... 
}, { 
    ... 
    date_of_join: "2/03/2013", 
    ... 
}, { 
    ... 
    date_of_join: "29/03/2013", 
    ... 
}]; 
+0

О, спасибо большое ChristopherW, но что, если я хочу напечатать значение «years_of_experience» и «texas» ,, какое заявление у меня есть напишите, пожалуйста, укажите? – user1976940

+0

@ user1976940 проверить цикл for now. – SomeShinyObject

0

Как это

var years = employees[i]["years_of_experience"]; 
var POB = employees[i]["birth_place"]; 
if (years < 34 || POB === "texas") { 
    document.getElementById("idOfSomeTag").innerHTML = "Years:" years +", POB"+POB; 
    // or console.log("years",years,"Pob",POB); 
} 
Смежные вопросы