[英]How to add missing values to two associated arrays? (JavaScript)
I have two arrays: 我有两个数组:
category.data.xAxis // containing: ["0006", "0007", "0009", "0011", "0301"]
category.data.yAxis // containing: [6.31412, 42.4245, 533.2234, 2345.5413, 3215.24]
How do I take a max length, say DATAPOINT_LENGTH_STANDARD = 540
and fill in every missing number-based string on the xAxis array? 如何获取最大长度,比如DATAPOINT_LENGTH_STANDARD = 540
并在xAxis数组中填写每个缺少的基于数字的字符串? so that: 以便:
The xAxis value strings can be assumed to already be sorted from lowest to highest. 可以假设xAxis值字符串已经从最低到最高排序。
EDIT 编辑
The clarity of my question was an effort to help the community with finding a more straight-forward answer, but I suppose the exactness gave the appearance of a homework question. 我的问题的清晰度是为了帮助社区找到更直接的答案,但我认为准确性给出了一个家庭作业问题。 In response to the comments, my original attempt, which does not properly manipulate the x-axis and maintain proper indexing: 响应评论,我的原始尝试,没有正确操纵x轴并保持正确的索引:
let tempArray = categoryObject.data.xAxis;
let min = Math.min.apply(null, tempArray);
let max = Math.max.apply(null, tempArray);
while (min <= max) {
if (tempArray.indexOf(min.toString()) === -1) {
tempArray.push(min.toString());
categoryObject.data.yAxis.push(0);
}
min++;
}
console.log(tempArray);
console.log(categoryObject.data.yAxis);
let xAxis = ["0006", "0007", "0009", "0011", "0301"] let yAxis = [6.31412, 42.4245, 533.2234, 2345.5413, 3215.24] const DATAPOINT_LENGTH_STANDARD = 540 // This assumes at least one data point let paddedLength = xAxis[0].length // Creates a new array whose first index is 0, last index is // DATAPOINT_LENGTH_STANDARD, filled with 0s. let yAxis_new = new Array(DATAPOINT_LENGTH_STANDARD + 1).fill(0) // Copy each known data point into the new array at the given index. // The + before x parses the zero-padded string into an actual number. xAxis.forEach((x, i) => yAxis_new[+x] = yAxis[i]) // Replace the given array with the new array. yAxis = yAxis_new // Store the padded version of the index at each index. for (let i = 0; i <= DATAPOINT_LENGTH_STANDARD; ++i) { xAxis[i] = ('' + i).padStart(paddedLength, '0') } console.log(xAxis) console.log(yAxis)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.