javascript - Fyll saknade värden med 0 i en array


Jag har två variabler av arrayer nämligen

this.barChartData och this.barChartLabels

var

this.barChartData har en lista,

[[{"data":[1,5,2]}]]

och this.barChartLabels har en array,

["32","34","37"]

Jag behöver fylla de återstående elementen med värdet 0 i denna this.barchartData.

baserat på det första och det sista värdet i this.barchartLables-arrayen.

min slutliga array bör vara, this.barChartLabels

["32","34","37","33","35","36"]

och

this.barChartData

[{"data":[1,5,2,0,0,0]}]

Svar #1

Du kan få minimum- och maximumetiketten och iterera medan du kollar om etiketten redan finns i arrayen. Om inte, lägg till värden.

var data = [1, 5, 2],
    labels = ["32", "34", "37"],
    min = Math.min.apply(null, labels),
    max = Math.max.apply(null, labels);

while (min <= max) {
    if (labels.indexOf(min.toString()) === -1) {
        labels.push(min.toString());
        data.push(0);
    }
    min++;
}

console.log(data);
console.log(labels);
.as-console-wrapper { max-height: 100% !important; top: 0; }