簡體   English   中英

Javascript映射數組的每個第n個元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM