我有以下代码,使用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}}相同的结果?
答案 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());