Я новичок в JavaScript, только учусь.
Ниже находится объект, который содержит контактную информацию.
var contacts = [
{
name: "Laurel",
phone: "123 456 7890",
email: "laurel@comics.com",
friends: ["Hardy", "Abbott", "Costello"]
},
{
name: "Hardy",
phone: "321 654 0987",
email: "hardy@hardyharhar.com",
friends: ["Laurel", "Buster"]
},
{
name: "Buster",
phone: "987 654 3210",
email: "buster@keaton.ca",
friends: ["Hardy"]
},
{
name: "Abbott",
phone: "888 123 4567",
email: "abbott@whosonfirst.co",
friends: ["Costello", "Laurel"]
},
{
name: "Costello",
phone: "767 676 7676",
email: "costello@imonfirst.co",
friends: ["Abbott", "Laurel"]
}
];
/* You should be changing this code */
function findFriend(data, name, field) {
/* IMPLEMENT ME */
}
Мы хотим построить функцию, которая будет принимать три параметра. Первый параметр - сами данные, второй - имя контакта, а третий параметр будет указывать либо «телефон», либо «электронную почту».
Функция примет эти параметры и вернет имя и указанное поле первого друга в списке друзей контакта.
Например, используя данные ниже и указав «Laurel» в качестве первого параметра и «email» в качестве второго,функция будет смотреть на список друзей Laurel и возвращать имя «Hardy» и адрес электронной почты Hardy.
Примеры ожидаемого вывода:
console.log(findFriend(contacts, "Abbott", "phone"));// returns {name: "Costello", phone: "767 676 7676"}
console.log(findFriend(contacts, "Buster", "email"));// returns {name: "Hardy", email: "hardy@hardyharhar.com"}
console.log(findFriend(contacts, "Bob", "phone"));// returns "Not found"
console.log(findFriend(contacts, "Costello", "birthday"));// returns "Not found"
Самое сложное для меня это как связать данные, которые от нас хотят. Я понимаю логику, но на деле не знаю как это реализовать( да и села в последнюю минуту и не успеваю все сдать в срок( Помогите, пожалуйста.
let contacts = [{
name: "Laurel",
phone: "123 456 7890",
email: "laurel@comics.com",
friends: ["Hardy", "Abbott", "Costello"]
},
{
name: "Hardy",
phone: "321 654 0987",
email: "hardy@hardyharhar.com",
friends: ["Laurel", "Buster"]
},
{
name: "Buster",
phone: "987 654 3210",
email: "buster@keaton.ca",
friends: ["Hardy"]
},
{
name: "Abbott",
phone: "888 123 4567",
email: "abbott@whosonfirst.co",
friends: ["Costello", "Laurel"]
},
{
name: "Costello",
phone: "767 676 7676",
email: "costello@imonfirst.co",
friends: ["Abbott", "Laurel"]
}
];
/* You should be changing this code */
function findFriend(data, name, field) {
let res = null; // будет результатом
data.forEach(function(e) {
if (e.name === name) { // прохожу по всем данным и ищу по name
let friend = e.friends[0]; // отбираю первого друга
data.forEach(ee => {
if (ee.name === friend) { // ищу друга по name во всех данных
res = ee[field]; // когда нашел - получаю нужное поле и записываю в результат
}
});
}
});
return res; // возвращаю результат
}
document.addEventListener('DOMContentLoaded', function() {
console.log(findFriend(contacts, "Abbott", "phone"));
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как найти подстроку в начале строки, и убрать чувствительность к регистру?
Это довольно трудоёмкий алгоритм, если делать его в лобСложность там будет что-то типа N*N*n*n*log(n), где N - размер изображений (для простоты асимптотик...
Допустим есть устройство на котором стоит Firmata, например ArduinoКак можно связятся с этим устройством на C++? Есть ли какая-то библиотека для данных...
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение