Skip to content Skip to sidebar Skip to footer

Return Multiple Lines Instead Of Console.log

I have the following code that produces the output I need using console.log function product() { var advertiserId = 1234; var ord = 543210; var productId = 'id1|id2|id

Solution 1:

You would usually push the lines to an array and return the array

functionproduct() {
    var advertiserId = 1234;
    var ord = 543210;
    var productId = "id1|id2|id3|id4".split("|"); 
    var productName = "product1|product2|product3|product4".split("|"); 
    var productItemPrice = "10|20|30|40".split("|"); 
    var ret = [];
    for(i = 0; i < productId.length; i++) {
        ret.push(advertiserId+"|"+ord+"|"+productId[i]+"|"+productName[i]+"|"+productItemPrice[i]);
    }
    return ret;
}

let data = product();
console.log(data); // array holding the lines// or join it with a newlineconsole.log(data.join("\n")); // lines as string

Solution 2:

Push the results into an array then use the Array#join function.

functionproduct() {
  const advertiserId = 1234;
  const ord = 543210;
  const productId = "id1|id2|id3|id4".split("|");
  const productName = "product1|product2|product3|product4".split("|");
  const productItemPrice = "10|20|30|40".split("|");

  const results = [];

  for (let i = 0; i < productId.length; i++) {
    results.push(`${advertiserId}|${ord}|${productId[i]}|${productName[i]}|${productItemPrice[i]}`);
  }

  return results;
}

const data = product();
console.log(data.join('\n'));

Solution 3:

Solution 4:

When you return from a function, it won't continue to execute. In your case, you can store each result and return them all at once.

function product() {
    var advertiserId = 1234;
    var ord = 543210;
    var productId = "id1|id2|id3|id4".split("|"); 
    var productName = "product1|product2|product3|product4".split("|"); 
    var productItemPrice = "10|20|30|40".split("|"); 
    var results = [];
    for(i = 0; i < productId.length; i++) {
       results.push(advertiserId + "|" + ord + "|" + productId[i] + "|" + productName[i]+ "|" +productItemPrice[i]);
    }
    return results;
}

results is now an array of strings that you can do what you want with.

Solution 5:

Write the output to a variable then return. using return inside the loop will exit the loop

function product() {
var advertiserId = 1234;
var ord = 543210;
var productId = "id1|id2|id3|id4".split("|"); 
var productName = "product1|product2|product3|product4".split("|"); 
var productItemPrice = "10|20|30|40".split("|"); 

var output = "";

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

    output += advertiserId+"|"+ord+"|"+productId[i]+"|"+productName[i]+"|"+productItemPrice[i] + "\n";

    }

    return output;
}
product()

Post a Comment for "Return Multiple Lines Instead Of Console.log"