Почему .pu sh () создает для меня массивы внутри массива? - PullRequest
0 голосов
/ 13 июля 2020
    const bills = [124, 48, 268];
const tipAmount = [];
const totalPaid = [];

const tipCalc = (bill) => {
    let tip
    switch(true) {
        case(bill < 50 ):
            tip = bill*0.2;
            console.log(tip);
            return tip;
        case(bill > 50 && bill < 200):
            tip = bill*0.15;
            console.log(tip);
            return tip;
        case(bill > 200):
            tip = bill*0.1;
            console.log(tip);
            return tip;
    }
};

tipAmount.push(bills.map(el => tipCalc(el)));

console.log(tipAmount[0]);

const totalCalc = (thething) => {

    let onArray = bills.indexOf(thething);
    let result = Number(bills[onArray]) + Number(tipAmount[0][onArray]);
    return result;
};

totalPaid.push(bills.map( el => totalCalc(el)));

console.log(totalPaid[0]);

Итак, во-первых, этот код работает прямо сейчас, и я прекрасно понимаю, что пошел на перебор, я просто хотел попробовать работать с двумя массивами и прочим, и теперь я пытаюсь понять, почему это происходит ...

когда я делаю tipAmount.push(bills.map(el => tipCalc(el))); создается массив внутри массива tipAmount, и для дальнейшего доступа к данным, которые я поместил в tipAmount, мне нужно выполнить tipAmount [0] [i], я Я пытаюсь понять, почему это происходит и что мне нужно было сделать для доступа к этим данным, просто выполнив tipAmount [i]

заранее спасибо

Ответы [ 3 ]

1 голос
/ 13 июля 2020

Я бы порекомендовал вам использовать метод карты массивов от go до javascript, map вернет новый массив. когда вы сделаете

tipAmount.push(bills.map(el => tipCalc(el)))

, он получит sh новый массив, возвращаемый функцией bills.map. просто распространите новый массив в метод pu sh,

    tipAmount.push(...bills.map(el => tipCalc(el)))
1 голос
/ 13 июля 2020

Вы помещаете массивы в tipAmount с помощью tipAmount.push(bills.map(...)). bills.map возвращает массив (отображенную версию самого себя), поэтому tipAmount в конечном итоге становится массивом массивов.

0 голосов
/ 13 июля 2020
const bills = [124, 48, 268];
var tipAmount = [];
var totalPaid = [];

const tipCalc = (bill) => {
    let tip
    switch(true) {
        case(bill < 50 ):
            tip = bill*0.2;
            console.log(tip);
            return tip;
        case(bill > 50 && bill < 200):
            tip = bill*0.15;
            console.log(tip);
            return tip;
        case(bill > 200):
            tip = bill*0.1;
            console.log(tip);
            return tip;
    }
};

tipAmount = tipAmount.concat(bills.map(el => tipCalc(el)));

console.log(tipAmount);

const totalCalc = (thething) => {

    let onArray = bills.indexOf(thething);
    let result = Number(bills[onArray]) + Number(tipAmount[onArray]);
    return result;
};

totalPaid = totalPaid.concat(bills.map( el => totalCalc(el)));

console.log(totalPaid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...