0

I wanna diaplay username which means name + surname somewhere. I've got a function:

function getData(count) {
 names = ["Michał", "Jan", "Katarzyna", "Andrzej", "Józef", "Bartek", "Mikołaj", "Tomasz", "Julian", "Brajan", "Dżesika"];////////////// bez var
 var surnames = ["Noga", "Kowalski", "Nowak", "Pazura", "Duda", "Komorowski", "Tomczyk", "Józefowicz", "Lechicki", "Goldberg"];
 var result = [];
 for (var i = 0; i < count; i++) {
 var randomNameIndex = Math.floor(Math.random() * names.length);
 var randomSurnameIndex = Math.floor(Math.random() * surnames.length);
 name = names[randomNameIndex];
 var surname = surnames[randomSurnameIndex];
 result.push({
 name: name,
 surname: surname
 });
 }
 return result
}

Then I wanna display a result so I have another function:

function textDisplay() {
 //var username = name;
 //var username = names[1];
 //var username = getData(3);
 //$(username) = names[1];
 $("#nameDisplay").html(username);
}

And no one of lines in comments works. How can I display these arrays elements properly?

asked May 2, 2018 at 21:20
1
  • What do you mean 'nothing works', what's the issue that you are facing? Commented May 2, 2018 at 21:24

1 Answer 1

1

getData() returns an array of objects. You need to loop over them to get all the names.

function textDisplay() {
 var data = getData(3);
 var html = "";
 $.each(data, function(i, {name, surname}) {
 html += `Name: ${name} ${surname}<br>`;
 });
 $("#nameDisplay").html(html);
}
function getData(count) {
 names = ["Michał", "Jan", "Katarzyna", "Andrzej", "Józef", "Bartek", "Mikołaj", "Tomasz", "Julian", "Brajan", "Dżesika"]; ////////////// bez var
 var surnames = ["Noga", "Kowalski", "Nowak", "Pazura", "Duda", "Komorowski", "Tomczyk", "Józefowicz", "Lechicki", "Goldberg"];
 var result = [];
 for (var i = 0; i < count; i++) {
 var randomNameIndex = Math.floor(Math.random() * names.length);
 var randomSurnameIndex = Math.floor(Math.random() * surnames.length);
 name = names[randomNameIndex];
 var surname = surnames[randomSurnameIndex];
 result.push({
 name: name,
 surname: surname
 });
 }
 return result
}
textDisplay();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="nameDisplay"></div>

answered May 2, 2018 at 21:25

4 Comments

Still displays nothing
Click on Run code snippet, it displays the names.
@MikołajPrzenzak The code provided by @Barmar clearly works in the snippet. What is happening? Are there any errors in the console? Have you tried stepping through the code to see what's happening at each line? Do you even have an HTML element with an id of nameDisplay?
My fault, I missed something you added. Thank all of you

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.