Требуется помощь ( построено на христианском решении ), чтобы понять, почему я не могу передать переменную в функцию и чтобы она работала, когда в функции можно определить одну и ту же переменную (используя точно такой же вывод) и все работает.
Вот мой сценарий.
<script>
function UpdateGrid(AppGrid) {
var json1 = JSON.stringify({ 'griddata': AppGrid });
console.log(json1);
var json2 = {
"griddata": [{
"id": "2",
"row": "2",
"col": "1",
"sizex": "1",
"sizey": "1"
},
{
"id": "1",
"row": "1",
"col": "1",
"sizex": "3",
"sizey": "1"
}
]
}
const items = json1.griddata
console.log("1");
const replacer = (key, value) => value === null ? '' : value // specify how you want to handle null values here
console.log("2");
const header = Object.keys(items[0])
console.log("3");
let csv = items.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(','))
csv.unshift(header.join(','))
csv = csv.join('\r\n')
console.log(csv)
}
</script>
Для справки, вот вывод в консоли AppGrid
{"griddata":[{"id":"2","row":"2","col":"1","sizex":"1","sizey":"1"},{"id":"1","row":"1","col":"1","sizex":"3","sizey":"1"}]}
Некоторые примечания. var json1 принимает некоторые данные JSON и выравнивание это в строку. Вывод этой строки я фактически скопировал и вставил для json2 (под ней). Я выводил на консоль json1, а также ряд других контрольных точек после каждого шага, поэтому я могу проследить, где он не работает.
Он не доходит до контрольной точки 3. Это означает, что он попадает на эту линию.
const header = Object.keys(items[0])
Ошибка в консоли заключается в следующем.
Uncaught TypeError: Невозможно прочитать свойство '0' из неопределенного
Если я изменяю постоянных элементов на json2.griddata тогда это работает отлично.