【发布时间】:2022-01-02 17:17:59
【问题描述】:
我正在寻找一种以特定顺序重新排列嵌套数组下方数组的方法。导入时,exposureLevel 数组中的值按任意顺序排列。
var exposureLevel = [["Exposure Level","Number"],["High",15],["Low",38],["Medium",105],["None",156]];
exposureLevel 数组中也可能缺少其中一些值。下面是一些可能的例子:
[["Exposure Level","Number"],["Low",38],["Medium",105]];
[["Exposure Level","Number"],["High",15],["None",156]];
[["Exposure Level","Number"],["High",15],["Medium",105],["None",156]];
我希望数组按下面的顺序排列,从标题 None, Low, Medium, High 之后的 [1] 元素开始。下面的三个数组显示了我希望上面的三个示例如何输出。我不完全确定如何执行此操作,但我必须进行某种类型的检查,以检查子数组中的字符串值在何处进行比较,并调整整个子数组在父数组中的位置。
[["Exposure Level","Number"],["Low",38],["Medium",105]];
[["Exposure Level","Number"],["None",156],["High",15]];
[["Exposure Level","Number"],["None",156],["Medium",105],["High",15]];
我在发布之前查看了这些帖子,但没有取得很大的成功:
- For-each over an array in JavaScript
- JOLT - Reorder nested arrays
- How do I check if an array includes a value in JavaScript?
- Javascript array contains/includes sub array
我目前的解决方案:
for (let i = 0; i < exposureLevel.length; i++) {
if(exposureLevel[i][0] == "None"){
console.log(exposureLevel[i][0])
}
if(exposureLevel[i][0] == "Low"){
console.log(exposureLevel[i][0])
}
if(exposureLevel[i][0] == "Medium"){
console.log(exposureLevel[i][0])
}
if(exposureLevel[i][0] == "High"){
//not sure how to push onto array correctly
console.log(exposureLevel[i][0])
}
}
我知道我当前的解决方案没有做任何事情,但我设法隔离了每个子数组中的字符串。下一步是将整个数组按指定顺序推入一个新数组中。如果有人知道执行上述操作的更好方法,请告诉我。
我对 JS 的经验很少。如果有人可以帮助我或为我指出正确的方向,我将不胜感激。如果需要任何进一步的信息,请告诉我。谢谢。
【问题讨论】:
标签: javascript arrays for-loop