Ниже код работает в chrome, но в IE 11 возникает синтаксическая ошибка из-за выражения =>
.
Я использовал выражение =>
для фильтрации данных.
Ошибка: критическая ошибка Javascript в строке xx ...... \ nSCRIPT1002: синтаксическая ошибка и прерывание отладки предупреждения в Visual studio
Будут оценены любые предложения.
Спасибо.
function customExportCSV(evt) {
var data = propertylayer._graphicsVal;
var csv = convertArrayOfObjectsToCSV({
data: data
});
if (!csv.match(/^data:text\/csv/i)) {
csv = 'data:text/csv;charset=utf-8,' + csv;
}
//var blob = new Blob([csv], { type: "text/csv" });
//if (navigator.msSaveBlob) { // IE 10+
// //var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
// //navigator.msSaveBlob(blob, "Exportdata.csv");
// navigator.msSaveBlob(blob, "csvname.csv")
//}
var encodedUri = encodeURI(csv);
var link = document.createElement('a');
link.setAttribute('href', encodedUri);
link.setAttribute('download', "Exportdata.csv");
link.click();
}
function convertArrayOfObjectsToCSV(value) {
var result, ctr, keys, columnDelimiter, lineDelimiter, data;
data = Array.from(new Set(value.data)).filter(d => d).map(d => d.attributes) || null;
if (!data || !data.length) {
return null;
}
columnDelimiter = value.columnDelimiter || ',';
lineDelimiter = value.lineDelimiter || '\n';
keys = Object.keys(data[1]);
result = '';
result += keys.join(columnDelimiter);
result += lineDelimiter;
data.forEach(function (item) {
ctr = 0;
keys.forEach(function (key) {
if (ctr > 0)
result += columnDelimiter;
result += item[key];
ctr++;
});
result += lineDelimiter;
});
return result;
}