gpt4 book ai didi

arrays - 数组返回正确的值,但稍后调用时将所有值返回为 'undefined'

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:16 25 4
gpt4 key购买 nike

我有一堆 JSON 文件,我的代码读取这些文件并将它们存储到数组中,当控制台记录数组时,我得到正确的值,在渲染页面之后,我再次控制台记录数组,它的所有值都是“未定义”。

let place = [];
let key, count = 0;

function Search(req, res){

let fileName = getFileName(req, res);
let emirate = req.body.emirate;
let type = req.body.type;

if(emirate == undefined || type == undefined){
req.flash('error', 'Please fill in the form');
res.redirect('/')

}else{
fs.readFile(`./places_files/${emirate}/${fileName}.json`, function(err, data){
if(err){
console.log(err);
}else{
let rawData = JSON.parse(data);
for(key in rawData.places){
place[count] = rawData.places[count]
count++;
}
console.log(place) // returns all of the values
res.render('results', {
places: place
});
console.log(place); // returns all values as undefined
}
});
}
}

最佳答案

你的 res.render 可以改变你的值数组。为了防止这种情况,请尝试发送此数组的副本,如下例所示:

res.render('results', {
places: place.slice()
});

另一个例子:

res.render('results', {
places: [...place]
});

关于arrays - 数组返回正确的值,但稍后调用时将所有值返回为 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54091859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com