[英]Remove commas from arrays located inside an array
我有以下数组,包含较小的 arrays:
var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]];
我想像这样显示它们,删除较小的 arrays 内的逗号并添加连字符:
香蕉 - 2
苹果 - 4
橙子 - 5
我尝试了以下方法,但仍然无法正常工作:
var fruits = [ ["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"] ]; var fruitsToday = []; for (i = 0; i < fruits.length; i++) { fruitsToday += fruits[i].join(" - "); } document.getElementById("today").innerHTML = fruitsToday.join("<br>");
任何帮助将不胜感激!
编辑以添加额外的解释和阅读:
当任何操作数是字符串时,二进制 + 运算符会触发隐式强制
您需要使用一个数组并推送到它。 使用+
运算符会将数组强制转换为字符串并连接字符串。
var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]]; var fruitsToday = []; for (i=0; i < fruits.length; i++) { fruitsToday.push(fruits[i].join(" - ")); } document.getElementById("today").innerHTML = fruitsToday.join("<br>");
<div id="today"></div>
您可以使用 map 连接的项目并将数组用于 output。
var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]], fruitsToday = fruits.map(a => a.join(' - ')); document.getElementById("today").innerHTML = fruitsToday.join('<br>');
<div id="today"></div>
应该在一行中可行:)
var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]]; document.getElementById("today").innerHTML = fruits.map(f => f.join(" - ")).join("<br>");
<span id="today"><span>
您的代码运行良好。 问题是fruitsToday.join("<br>");
因为fruitsToday
是字符串,而join()
仅适用于数组。
var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]]; var fruitsToday = []; for (i=0; i < fruits.length; i++) { fruitsToday += (fruits[i].join(" - ") + '<br/>'); } document.getElementById("today").innerHTML = fruitsToday;
<div id=today></div>
问题是数组fruitsToday
和索引i
->
fruits[i]
处的数组之间的隐式字符串连接。
fruitsToday += fruits[i].join(" - ");
^
通过调用 function Array.prototype.push
更改该串联
let fruits = [ ["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"] ]; let fruitsToday = []; for (let i = 0; i < fruits.length; i++) { fruitsToday.push(fruits[i].join(" - ")); } document.getElementById("today").innerHTML = fruitsToday.join("<br>");
<div id="today"></div>
与下面使用 map() 类似,但使用新元素创建所需的新数组“fruitsToday”。 然后,您可以根据需要使用新数组。
var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]]; var fruitsToday = []; fruits.map(function(e) {fruitsToday.push(e[0]+" - "+ e[1]);}) console.log(fruitsToday);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.