如何将数组中找到的字符串中的单个字母推送到子数组

How to push individual letters from string found in array to sub-array

我希望使用 JavaScript 将在数组中找到的字符串的字母放入子数组中。

例如:

var word = "abc def";
var wordArray = [];
var firstArray = randomWord.split(" ");

for (var l = 0, len = firstArray.length; l < len; l++) {
   for (var m = 0, len2 = firstArray[l].length; m < len2; m++) {
      console.log(firstArray[l][m]);
      WordArray.push(firstArray[l][m]);   
      WordArray = randomWordArray.filter(function(str) {
         return /\S/.test(str);
      });
   };
};

console.log("word", word);
console.log("wordArray", wordArray);

目前,我得到的是...

wordArray = ["a", "b", "c", "d", "e", "f"];

我希望的是...

wordArray = [["a", "b", "c"],["d", "e", "f"]];

我想真正的问题是这可能吗?

提前感谢您提出的所有建议。

按space拆分单词,然后映射并拆分每个单词:

const words = "abc def";

const result = words.split(' ')
  .map(w => w.split(''));

console.log(result);

这是我会做的:

1) Split 单词按空格 ''

2) 使用spread syntax展开上述数组中的每个单词。

const word = "abc def";

const res = word.split(' ').map(element => [...element]);
console.log(res)

我想,这段代码会对你有所帮助!

var data = "this is test data";
var arrayData = data.split(' ').map(i=> i.split(''));

console.log(arrayData);

你主要想解决两个问题。首先,您想为每个单词创建一个单独的数组(检测单词边界)。接下来,您想将每个单词拆分为其组成字母。

在没有任何 "modern" JavaScript 魔法(map、reduce 等)的情况下执行此操作看起来像这样:

var word = "abc def";

// Step 1.
var wordArray = word.split(" ");
console.log(wordArray); // ["abc", "def"]

// Step 2.
for (var i = 0; i < wordArray.length; i++)
{
    wordArray[i] = wordArray[i].split("");
}
console.log(wordArray); // [["a", "b", "c"], ["d", "e", "f"]]

第二步可以写成稍微更紧凑的形式,因为意识到这是所谓的 mapping 问题。您想要获取数组的每个元素并将其从一种形式(字符串)转换为另一种形式(字母数组)。为此,JavaScript提供了map方法:

var squares = [1, 2, 3].map(function(x) { return x * x; });
console.log(squares); // [1, 4, 9]

所以我们可以re-write第 2 步使用这样的方法:

wordArray = wordArray.map(function(word) { return word.split(""); });

最后,我们可以使用箭头函数进一步简化。箭头函数基本上是 short-hand 用于以下内容:

x => x + 1;

// Is equivalent to:

(function(x) {
    return x + 1;
}).bind(this);

暂时忽略 .bind() 位(这对您的问题不重要),我们可以将步骤 2 写为:

wordArray = wordArray.map(word => word.split(""));

结合这两项改进,我们得到:

var word = "abc def";
// Step 1.
var wordArray = word.split(" ");
// Step 2.
wordArray = wordArray.map(word => word.split(""));

我们可以通过将 word.split(" ") 的结果直接传递给步骤 2 而无需将其存储到中间变量:

var word = "abc def";
// Step 1 and 2.
var wordArray = word.split(" ").map(word => word.split(""));

好了。 "modern" 答案,从基础创建。

首先使用 space,

将文本拆分为单词

然后得到每个单词后,用空字符串按字母拆分

这应该有效

 let text = "abc def";
 let arrayFinal = [];

 for(let word of text.split(' ')) {
    let letterArray = [];
    for(let letter of word.split('')) {
      letterArray.push(letter);
     }

    arrayFinal.push(letterArray);
  }

refere this

无需手动嵌套循环,直接使用split and map得到结果

var word = "abc def";
var wordArray = word.split(" ").map(w => w.split(''));