Farhang
Farhang

Reputation: 13

JavaScript Objects Arrays & Printing

I want to create & print a list of 20 businesses.

Server only allows for HTML & JavaScript and no jQuery plugins.

I need to use an Arrays to add 20 more Businesses w/ minimum coding. Would be nice to have a code for easily adding 20 more businesses.

Each array needs to print a separate bulleted list / Unordered List ( "ul")

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Yellow Pages</h2>

<p id="businessID"></p>

<script>

// Business Object
Business = {
  "businessName",
  "businessType",
  "businessNumber",
}

// Constructor function for Business Object
function business( businessName, businessType, businessNumber ) {
    this.businessName = name,
    this.businessType = type,
    this.businessNumber = number,
}

// Create 3 Business Objects
var business1 = new business("businessName1", "businessType1", "businessNumber1");
var business2 = new business("businessName2", "businessType2", "businessNumber2");
var business3 = new business("businessName3", "businessType3", "businessNumber3");

// Arrays of Business Objects, (Hopefully)
var businessesArray = [

  {"businessName1", "businessType1", "businessNumber1"},
  {"businessName2", "businessType2", "businessNumber2"},
  {"businessName3", "businessType3", "businessNumber3"},
];

// Create Bulleted List & Print
var text = "<ul>";
for(i=0; i< businesses.length; i++){
  for(j=0; j< businesses[i].length; j++){
  text += "<li>" + businesses[i][j] + "</li>";
  }

text += "<BR>";
}
text += "</ul>";
document.getElementById("businessID").innerHTML = text;

</script>    
</body>
</html>

Try code here https://www.w3schools.com/html/tryit.asp?filename=tryhtml_default

Sorry, I am a novice. Please help more in details :-)

Thank you in advance for all your help with my very first question! :-)

Upvotes: 0

Views: 87

Answers (1)

devlin carnate
devlin carnate

Reputation: 8592

To print the array based on the structure you've given, use two loops (one for the inner array and the other for the outer array):

for (var i = 0; i < businesses.length; i++) {
  var ul = $("<ul/>");
  $('#list').append(ul);
  console.log((businesses[i]));
  for (var j = 0; j < businesses[i].length; j++) {
    var li = $("<li/>");
    li.text(businesses[i][j]);
    ul.append(li);
  }
}

Here is a Fiddle demo: https://jsfiddle.net/zephyr_hex/vqodf1xn/13/

Upvotes: 1

Related Questions