У меня есть функция, которая принимает список словарей [{}]
в качестве аргумента. Он управляет этим списком dicts, добавляя к нему новую пару key: value
, где значение снова является списком словарей. Вот как выглядит функция, я добавил комментарии, чтобы объяснить это.Javascript: Значение словаря «ключ» становится равным нулю для цикла
function addFilesToProjects(nonUniqueArray, lists) {
var fileList = [{}]; //this will contain the list of dictionaries that I want to add as a key to the array 'nonUniqueArray'
var filesArray = []; //this was just for testing purposes because I want to access the modified version of nonUniqueArray outside the function, which I'm not able to (it shows undefined for the new key:value pair)
for (var i = 0; i < nonUniqueArray.length; i++) {
lists.forEach(function (list) {
fileNameString = JSON.stringify(list['name']).slice(2, -2);
if (fileNameString.indexOf(nonUniqueArray[i]['title']) !== -1 && fileNameString !== nonUniqueArray[i]['title']) {
fileList.push({
'name': fileNameString
});
}
});
nonUniqueArray[i]['files'] = fileList;
//this logs out the right key:value pair to the console
console.log(nonUniqueArray[i]);
filesArray.push(nonUniqueArray[i]);
while (fileList.length > 0) {
fileList.pop();
}
}
//however, now I get everything as before except the new 'files' key has empty list [] as its value :(
console.log(nonUniqueArray);
return filesArray;
}
У меня нет подсказки, почему это происходит, может кто-то помочь?
Пройдите код с полнофункциональным отладчиком, встроенным в вашу среду IDE или браузер. Это лучший способ узнать, что происходит и что происходит. –
'теперь я получаю все, как и раньше, кроме того, что новый ключ« файлов »имеет пустой список». Ну, разве вы не опорожняете его даже пятью строками выше? – vlaz
Я вывожу все из массива filesArray, а не unUniqueArray. Кроме того, это на стороне сервера, и я кодирую на возвышенном. Я отлаживаю использование console.logs, но это не помогает мне – Scrotch