删除位于数组中的数组中的逗号。

问题描述 投票:0回答:1

我有以下数组,其中包含较小的数组。

var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]];

我想这样显示,去掉小数组里的逗号,加上一个连字符。

香蕉 - 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>");

如果有任何帮助,我将非常感激!

javascript arrays
1个回答
2
投票

编辑补充说明和阅读。

隐式胁迫是由二进制+运算符触发的,当任何操作数是一个字符串时

你需要使用一个数组并推送到它。 使用 + 操作符将把数组胁迫成一个字符串,并将这些字符串连接起来。

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>

2
投票

你可以将连接的项目进行映射,然后使用数组进行输出。

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>

1
投票

应该可以在一行中完成 :)

var fruits = [["Bananas", "2"], ["Apples", "4"], ["Oranges", "5"]];

document.getElementById("today").innerHTML = fruits.map(f => f.join(" - ")).join("<br>");
<span id="today"><span>

0
投票

你的代码很好用。问题是 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>

0
投票

问题在于数组和数组之间的隐式字符串连接。fruitsToday 和索引处的数组 i -> fruits[i].

fruitsToday += fruits[i].join(" - ");
            ^

通过调用函数 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>

0
投票

类似于下面使用map()的方法,但是使用新的元素创建所需的新数组 "fruitToday"。然后你可以根据自己的意愿使用新数组。

var fruits = [["Bananas", "2"],  ["Apples", "4"],  ["Oranges", "5"]];
var fruitsToday = [];

fruits.map(function(e) {fruitsToday.push(e[0]+" - "+ e[1]);})

console.log(fruitsToday);
© www.soinside.com 2019 - 2024. All rights reserved.