[英]Javascript map every nth element of array
我剛開始自學 Javascript 並面臨着相當復雜的任務。
我有一個數組,其中包含 18 個標簽,另一個一維數組包含所有值。 標簽索引位置匹配數組中的每個第 n 個元素。
例如,如果標簽索引為 0,那么第一個元素和第 19 個元素屬於標簽 1,第 2 個和第 20 個元素屬於索引 2 中的標簽。
我寫了這個腳本來創建一個對象並從正確的索引附加值,但是有沒有更好的方法來映射兩個數組之間的值?
var labelArrLenght = 18;
var i = 0, sampleArr = [];
while (i < 6642) {
sampleArr.push(i);
i++;
};
var i = 0, myObj = {};
while (i < labelArrLenght) {
myObj[i] = {label:`dummyLabel${i}`, data:[]};
i++
};
var step1 = sampleArr.length / labelArrLenght;
var stepCounter = 0;
for (var i = 0; i < step1; i++) {
for (var b = 0; b < labelArrLenght; b++) {
myObj[b]['data'].push(sampleArr[stepCounter]);
stepCounter++;
};
};
您可以采用單循環方法並使用余數運算符%
獲取索引。
var labelArrLenght = 18, sampleArr = [], myObj = {}; for (let i = 0; i < 90; i++) sampleArr.push(i); for (let i = 0; i < labelArrLenght ; i++) myObj[i] = { label: `dummyLabel${i}`, data: [] }; for (var i = 0; i < sampleArr.length; i++) myObj[i % labelArrLenght].data.push(sampleArr[i]); console.log(myObj);
.as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.