将数组添加到数组而不创建2D数组

时间:2016-01-10 13:12:51

标签: arrays ruby

我有一个数组word_array,我想在其中添加句子的所有单词。例如:

word_array = []
sentence_1 = "my first sentence"
sentence_2 = "my second sentence"

然后:

word_array = ["my", "first", "sentence", "my", "second", "sentence"]

如果我使用split()

word_array << sentence_1.split
word_array << sentence_2.split 

我明白了:

word_array = [["my", "first", "sentence"], ["my", "second", "sentence"]]

如何避免在这里使用2D数组?

4 个答案:

答案 0 :(得分:5)

使用concat

word_array.concat(sentence_1.split)
word_array.concat(sentence_2.split)

它比使用+更有效,后者创建了一个新数组。

答案 1 :(得分:4)

一种方法是每次使用+=将元素附加到word_array的末尾:

word_array += sentence_1.split
# => ["my", "first", "sentence"]
word_array += sentence_2.split
# => ["my", "first", "sentence", "my", "second", "sentence"]

答案 2 :(得分:3)

只需使用sentence_1.split + sentence_2.split

即可

我认为您可能会将+<<混淆为数组。 +是合并数组,<<将参数作为数组的元素。

答案 3 :(得分:1)

你可能有多个句子,你可能会以数组的形式得到它。在这种情况下,以及如果你只有几句话,下面的解决方案将是恰当的。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:o xmlns:ns2="info.source4code.jaxb.model">
    <test type="String">aaaa</test>
    <intTest type="Integer">100</intTest>
    <abc type="Integer">2</abc>
</ns2:o>