admin管理员组文章数量:1313786
Given an array of arrays with 2 vals such :
var arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
I currently use this or variations of this :
var arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
var arrayToString = function(array){
var str;
array.map(function(a) {
var item = a[0]+":"+a[1];
str = str? str+'; '+item : item;
}
);
return str
}
var str = arrayToString(arrayStd);
console.log(JSON.stringify(str));
Given an array of arrays with 2 vals such :
var arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
I currently use this or variations of this :
var arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
var arrayToString = function(array){
var str;
array.map(function(a) {
var item = a[0]+":"+a[1];
str = str? str+'; '+item : item;
}
);
return str
}
var str = arrayToString(arrayStd);
console.log(JSON.stringify(str));
Or
var arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
var arrayToString = function(array){
return str = JSON.stringify(array).replace(/\"|\[\[|\]\]/g , "").replace(/\],\[/g , "; ").replace(/,/g , ":");
}
var str = arrayToString(arrayStd);
console.log(JSON.stringify(str));
Is there a slicker way to do obtain str= "G14:18; G16:17; G16:17; G13:17"
Share Improve this question edited May 4, 2018 at 13:02 Mohammad Usman 39.4k20 gold badges98 silver badges99 bronze badges asked May 4, 2018 at 12:34 Hugo LOPEZHugo LOPEZ 6151 gold badge8 silver badges21 bronze badges 5-
3
really no reason to use stringify, join("; ") will do it
[["G14",18],["G16",17],["G16",17],["G13",17]].map(i=>i.join(':')).join('; ')
– epascarello Commented May 4, 2018 at 12:36 - 4 I'm voting to close this question as off-topic because it seems like a better fit for codereview.stackexchange. – epascarello Commented May 4, 2018 at 12:36
-
let str = arrayStd.map(e => e.join(':')).join(';');
– baao Commented May 4, 2018 at 12:37 -
Seems
return str = array.join("; ").replace(/,/g,":")
would do :D – Hugo LOPEZ Commented May 4, 2018 at 12:38 - "Is there a slicker way to do" No. That's perfect. – D. Pardal Commented May 4, 2018 at 12:39
5 Answers
Reset to default 4You can use .map()
and .join()
like this:
let str = arrayStd.map(a => a.join(":")).join("; ");
Demo:
let arrayStd = [["G14", 18], ["G16", 17], ["G16", 17], ["G13", 17]];
let str = arrayStd.map(a => a.join(":")).join("; ");
console.log(str);
Making incremental improvements to your code...
You should be using .forEach()
instead of .map()
since you're not returning anything.
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));
However, .map()
is actually useful here to map each inner array to a string, then take the new array of strings and join them.
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));
You can also use .join()
on the inner array, and can get rid of the str
variable by returning the result immediately.
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));
Finally, in modern environments, you can convert your functions to "arrow functions" to get a more concise syntax.
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));
I also changed var
to const
, which is a good idea for variables you won't modify.
Highly inspired by previous suggestions, yet shorter and more readable than others :
var arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
var arrayToString = function(array){
return array.join("; ").replace(/,/g,":")
}
console.log(arrayToString(arrayStd));
You can use map function, and join the resulting array.
let arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
//"G14:18; G16:17; G16:17; G13:17"
let arrayNew = arrayStd.map((elem,i) => `${i!==0?'; ':''}${elem[0]}:${elem[1]}`).join("");
console.log(arrayNew);
let arrayStd = [["G14",18],["G16",17],["G16",17],["G13",17]];
//"G14:18; G16:17; G16:17; G13:17"
let arrayNew = arrayStd.map((elem,i) => `${i!==0?';
':''}${elem[0]}:${elem[1]}`).join("");
console.log(arrayNew);
本文标签: javascriptConvert array of arrays to stringStack Overflow
版权声明:本文标题:javascript - Convert array of arrays to string? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741942622a2406228.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论