如何在嵌套数组中的逗号后插入空格?

时间:2016-11-11 14:50:45

标签: javascript

function updateInventory(arr1, arr2) {
    var current = {};
    for (var i = 0; i < arr1.length; i++) {
        current[arr1[i][1]] = arr1[i][0];
    }

    for (i = 0; i < arr2.length; i++){
        if (current.hasOwnProperty(arr2[i][1])) {
            current[arr2[i][1]] = current[arr2[i][1]] + arr2[i][0];
        } else {
            current[arr2[i][1]] = arr2[i][0];
        }
    }
    return Object.keys(current).map(function(val) {
        return [current[val],val];
    });
}

updateInventory([[21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"]], [[2, "Hair Pin"], [3, "Half-Eaten Apple"], [67, "Bowling Ball"], [7, "Toothpaste"]]);

好的,结果是例如[[21, "Bowling Ball"],[2, "Dirty Sock"],[1, "Hair Pin"],[5, "Microphone"]],它需要像在函数调用中一样(逗号后面有空格)。换句话说,我无法弄清楚如何解决这条问题:

return Object.keys(current).map(function(val) {
    return [current[val],val];
});

1 个答案:

答案 0 :(得分:1)

下次更好地指出挑战https://www.freecodecamp.com/challenges/inventory-update

PS:你不敢告诉我它没有打印出你所期望的东西,因为挑战说它通过了,自己检查

&#13;
&#13;
function updateInventory(arr1, arr2) {
    var inv = {};
    for (var i in arr1) {
        inv[arr1[i][1]] = inv[arr1[i][1]] || 0;
        inv[arr1[i][1]] += arr1[i][0];
    }
    for (var i in arr2) {
        inv[arr2[i][1]] = inv[arr2[i][1]] || 0;
        inv[arr2[i][1]] += arr2[i][0];
    }
    var arr3 = [];
    Object.keys(inv).sort().forEach(function(key) {
        arr3.push([inv[key], key]);
    });
    console.log(arr3);
    return arr3;
}

// Example inventory lists
var curInv = [
    [21, "Bowling Ball"],
    [2, "Dirty Sock"],
    [1, "Hair Pin"],
    [5, "Microphone"]
];

var newInv = [
    [2, "Hair Pin"],
    [3, "Half-Eaten Apple"],
    [67, "Bowling Ball"],
    [7, "Toothpaste"]
];

updateInventory(curInv, newInv);
&#13;
&#13;
&#13;