如果返回的元素为空,如何回溯数组的索引
How can you backtrack through indexes of an array if element returned is null
我正在解决一个问题,我正在通过从 API 调用返回的数组进行映射以创建图形点对象数组,但是返回的数据不可靠并且包含空值。为了简化问题,这里有一个简短的版本:
const APITimestamps = ['123','124','125','126','127','128']
const APIPrices = ['22.34','22,45',NULL,NULL,'22.89','22.32']
const chartData = APITimestamps.map((timestamp, index) => {
let graphPoint = {}
graphPoint.timestamp = APITimestamps[index]
graphPoint.price = APIPrices[index]
return graphPoint
}
地图按原样工作,但是我需要删除空值的 chartData,其中 API 没有价格的一些时间戳。我想做的是回溯映射的 APIPrices 的索引,直到找到非空值,在上述情况下为 ['22.34','22,45','22, 45'、'22,45'、'22.89'、'22.32']。关于如何实现这一目标的任何指示?
您可以使用 for
循环从当前索引向后迭代并找到第一个非空值。
const APITimestamps = ['123','124','125','126','127','128']
const APIPrices = ['22.34','22,45',null,null,'22.89','22.32']
const chartData = APITimestamps.map((timestamp, index) => {
let graphPoint = {}
graphPoint.timestamp = APITimestamps[index]
for(let i = index; i >= 0; i--){
if(APIPrices[i] !== null){
graphPoint.price = APIPrices[i];
break;
}
}
return graphPoint
});
console.log(chartData);
我正在解决一个问题,我正在通过从 API 调用返回的数组进行映射以创建图形点对象数组,但是返回的数据不可靠并且包含空值。为了简化问题,这里有一个简短的版本:
const APITimestamps = ['123','124','125','126','127','128']
const APIPrices = ['22.34','22,45',NULL,NULL,'22.89','22.32']
const chartData = APITimestamps.map((timestamp, index) => {
let graphPoint = {}
graphPoint.timestamp = APITimestamps[index]
graphPoint.price = APIPrices[index]
return graphPoint
}
地图按原样工作,但是我需要删除空值的 chartData,其中 API 没有价格的一些时间戳。我想做的是回溯映射的 APIPrices 的索引,直到找到非空值,在上述情况下为 ['22.34','22,45','22, 45'、'22,45'、'22.89'、'22.32']。关于如何实现这一目标的任何指示?
您可以使用 for
循环从当前索引向后迭代并找到第一个非空值。
const APITimestamps = ['123','124','125','126','127','128']
const APIPrices = ['22.34','22,45',null,null,'22.89','22.32']
const chartData = APITimestamps.map((timestamp, index) => {
let graphPoint = {}
graphPoint.timestamp = APITimestamps[index]
for(let i = index; i >= 0; i--){
if(APIPrices[i] !== null){
graphPoint.price = APIPrices[i];
break;
}
}
return graphPoint
});
console.log(chartData);