返回多行而不是console.log

时间:2017-07-18 15:31:33

标签: javascript

我有以下代码,使用console.log

生成我需要的输出
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("|"); 

    for(i = 0; i < productId.length; i++) {
        console.log(advertiserId+"|"+ord+"|"+productId[i]+"|"+productName[i]+"|"+productItemPrice[i]);
    }
}
product()

console.log结果 -

1234|543210|id1|product1|10
1234|543210|id2|product2|20
1234|543210|id3|product3|30
1234|543210|id4|product4|40

console.log更改为return时,仅返回第一行。 return结果 -

1234|543210|id1|product1|10

return是否可以console.log获得与{{1}}相同的结果?

8 个答案:

答案 0 :(得分:5)

您通常会将线条推送到数组并返回数组

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 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 newline
console.log(data.join("\n")); // lines as string

答案 1 :(得分:1)

将结果推送到数组中,然后使用Array#join函数。

function product() {
  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'));

答案 2 :(得分:1)

您还可以使用other控制台命令:

console.dir(data); 

答案 3 :(得分:0)

从函数返回时,它将不会继续执行。在您的情况下,您可以存储每个结果并一次全部返回。

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;
}

结果现在是一个字符串数组,您可以按照自己的意愿进行操作。

答案 4 :(得分:0)

将输出写入变量然后返回。在循环内使用return将退出循环

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()

答案 5 :(得分:0)

我认为你需要的是将迭代的每个结果存储在一个变量上,然后在for循环之后返回它。像

  var a;
  for loop... { 
    a += (all of your stuff)  + '\n' 
  }
  return a;

这应该将断行保留在变量中,因此请将您想要的缩进(例如console.log)保留到变量中。

如果需要分隔值,可以将每一行存储到数组中,并在for循环后返回数组。

答案 6 :(得分:0)

return语句立即停止该函数,并且只能返回单个值。您可以在循环中添加数据,然后在结尾处返回。

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 result = [];
    for(i = 0; i < productId.length; i++) {

        result.push(advertiserId+"|"+ord+"|"+productId[i]+"|"+productName[i]+"|"+productItemPrice[i]);



    }
    return result;
}
product()

答案 7 :(得分:0)

可以将值map()放入数组中并返回连接到字符串

的数组或数组

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("|");

  return productId.map(function(id, idx) {
    return [
      advertiserId,
      ord,
      productId[idx],
      productName[idx],
      productItemPrice[idx]
    ].join('|')
  }).join('\n')


}

console.log(product());