javascript中的嵌套数组到单个数组
这可能是一个愚蠢的问题,但我对javascript太陌生了。我想得太多了 我将树立一个榜样: 我有:javascript中的嵌套数组到单个数组,javascript,arrays,node.js,Javascript,Arrays,Node.js,这可能是一个愚蠢的问题,但我对javascript太陌生了。我想得太多了 我将树立一个榜样: 我有: animals['Cat', 'Dog']; 以及 我想: animalmood[0]=('Cat', 'Happy') animalmood[1]=('Cat', 'Sad') animalmood[2]=('Dog', 'Happy') animalmood[3]=('Dog' 'Sad') 如何做到这一点 它的正确语法是什么?欢迎任何帮助。使用嵌套的for循环,将每个元素组合推入输出数
animals['Cat', 'Dog'];
以及
我想:
animalmood[0]=('Cat', 'Happy')
animalmood[1]=('Cat', 'Sad')
animalmood[2]=('Dog', 'Happy')
animalmood[3]=('Dog' 'Sad')
如何做到这一点
它的正确语法是什么?欢迎任何帮助。使用嵌套的
for
循环,将每个元素组合推入输出数组
var动物=['Cat','Dog'],
心情=[‘悲伤’、‘快乐’],
动物情绪=[];
对于(变量i=0;i console.log(animalsMood)代码>更高级的答案是使用reduce
功能:
const animals = ['Cat', 'Dog'];
const moods = ['Sad' , 'Happy'];
const animalsMood = animals.reduce((result, animal) =>
result.concat(moods.map(mood => [animal, mood]))
, []);
console.log(JSON.stringify(animalsMood));
使用排列而不是concat
const animals = ['Cat', 'Dog'];
const moods = ['Sad' , 'Happy'];
const animalsMood = animals.reduce((result, animal) =>
[...result, ...moods.map(mood => [animal, mood])]
, []);
console.log(JSON.stringify(animalsMood));
这是什么格式的动物食品[0]=('Cat','Happy')
?你想把它作为一个字符串动物食品[0]=“猫,快乐”
或作为数组animalmood[0]=['Cat','Happy']
?这可能的副本并不更高级,这只是一种不同的编程风格。这是功能性的,而不是强制性的。我真希望JavaScript有一个.collect()
方法,而不是强迫我们使用.reduce()
或其他一些非传统函数。reduce
或map
函数是传统函数,它们满足函数语言(如JavaScript)的所有“纯函数”标准。使用和理解reduce
将使您能够使用和理解NoSQL数据库中的复杂操作,或者理解Redux
中reducer的主要概念之一,或者。。。我还建议您阅读许多其他高级逻辑结构或操作。。。。另一个StackOverflow问题(因为我们最后使用的是StackOverflow)可能会给您一些想法我只是说reduce
在生成数组时是非传统的。收集是一种减少,但如果在使用reduce
收集时没有那么多样板文件,那就更好了。纯函数式语言有更好的选择。
const animals = ['Cat', 'Dog'];
const moods = ['Sad' , 'Happy'];
const animalsMood = animals.reduce((result, animal) =>
[...result, ...moods.map(mood => [animal, mood])]
, []);
console.log(JSON.stringify(animalsMood));