Внесение дополнительных улучшений в ваш код ...
Вы должны использовать .forEach()
вместо .map()
, поскольку вы ничего не возвращаете.
var arrayStd = [
["G14", 18],
["G16", 17],
["G16", 17],
["G13", 17]
];
var arrayToString = function(array) {
var str = "";
array.forEach(function(a) {
var item = a[0] + ":" + a[1];
str = str ? str + '; ' + item : item;
});
return str
}
var str = arrayToString(arrayStd);
console.log(JSON.stringify(str));
Тем не менее, .map()
на самом деле полезен здесь для отображения каждого внутреннего массива в строку, затем взять новый массив строк и соединить их.
var arrayStd = [
["G14", 18],
["G16", 17],
["G16", 17],
["G13", 17]
];
var arrayToString = function(array) {
var str = array.map(function(a) {
return a[0] + ":" + a[1];
}).join("; ");
return str
}
var str = arrayToString(arrayStd);
console.log(JSON.stringify(str));
Вы также можете использовать .join()
во внутреннем массиве и избавиться от переменной str
, немедленно возвращая результат.
var arrayStd = [
["G14", 18],
["G16", 17],
["G16", 17],
["G13", 17]
];
var arrayToString = function(array) {
return array.map(function(a) {
return a.join(":");
}).join("; ");
}
var str = arrayToString(arrayStd);
console.log(JSON.stringify(str));
Наконец, в современных средах вы можете преобразовать свои функции в «функции стрелок», чтобы получить более краткий синтаксис.
const arrayStd = [
["G14", 18],
["G16", 17],
["G16", 17],
["G13", 17]
];
const arrayToString = array => array.map(a => a.join(":")).join("; ")
var str = arrayToString(arrayStd);
console.log(JSON.stringify(str));
Я также изменил var
на const
, что является хорошей идеей для переменных, которые вы не будете изменять.