同样的东西被打印两次 - JS Arrays

问题描述

我创建了一个对象,其中有 2 个数组。当我尝试在控制台中打印其元素时,它会打印两次。

const err1 = {
    "type": new Array(),"desc": new Array()
}

err1.type.push("a","b");
err1.desc.push("ananas","banana");

var errD = new String();
var errT = new String();


err1.type.forEach(function(el,ind){
    errT += `Type: ${el}`;
    errD += `Description: ${err1.desc[ind]}`;
    console.log(`ERROR: \n${errT}\n${errD}`);
});

控制台:

ERROR: 
Type: a
Description: ananas
---------------------------- (console line)
ERROR: 
Type: aType: b
Description: ananasDescription: banana

String 是否已经在数组中或我将其推入数组中都没有关系。我也尝试通过 for 循环来安慰他们 - 结果是一样的。

为什么会这样?

解决方法

这是因为你在追加,试试这个:

const err1 = {
    "type": new Array(),"desc": new Array()
}

err1.type.push("a","b");
err1.desc.push("ananas","banana");

var errD = new String();
var errT = new String();


err1.type.forEach(function(el,ind){
    errT = `Type: ${el}`;
    errD = `Description: ${err1.desc[ind]}`;
    console.log(`ERROR: \n${errT}\n${errD}`);
});