【问题标题】:How to connect an item of an array with another item of an array如何将数组的一项与数组的另一项连接起来
【发布时间】:2019-09-20 06:07:00
【问题描述】:

我有两个数组:

let array1 = ["aaa","bbb"];
let array2 = ["f1","f2","f3"];

我怎样才能得到以下结果?

aaa f1, aaa f2, aaa f3, bbb f1, bbb f2, bbb f3

【问题讨论】:

标签: javascript arrays concatenation


【解决方案1】:

let array1 = ["aaa", "bbb"];
let array2 = ["f1", "f2", "f3"];

const newArray = [];

array1.forEach(item1 => {
	array2.forEach(item2 => {
		newArray.push(item1 + " " + item2)
	})
})

console.log(newArray);

【讨论】:

    【解决方案2】:

    这是使用Array.prototype.flatMap()Array.prototype.map() 的解决方案:

    const array1 = ["aaa","bbb"];
    const array2 = ["f1","f2","f3"];
    
    const result = array1.flatMap(v1 => array2.map(v2 => `${v1} ${v2}`));
    
    console.log(result);

    【讨论】:

      【解决方案3】:
      let array1 = ["aaa", "bbb" ];
      let array2 = ["f1","f2","f3"];
      let response=[];
      array1.forEach( ele1 => {
       array2.forEach( ele2=> {
         response.push( ele1 +' '+ ele2 );
       })
      });
      console.log( response );
      

      【讨论】:

        【解决方案4】:
        'use strict';
        let array1 = ["aaa","bbb"];
        let array2 = ["f1","f2","f3"];
        
        let res = [];
        
        array1.forEach( a1 => array2.forEach(a2 => res.push([`${a1} ${a2}`])) );
        

        【讨论】:

          【解决方案5】:
          let array1 = ["aaa","bbb"];
          let array2 = ["f1","f2","f3"];
          let array3 = []
          for (ele1 of array1) {
              for (ele2 of array2) {
                  array3.push(ele1 + ' ' + ele2);
              } 
          }
          

          【讨论】:

            【解决方案6】:

            您可以使用reduce()map() 来获得所需的结果,并与Spread_syntax 一起使用。

            请检查以下代码 sn-p:

            let array1 = ["aaa","bbb"],
                array2 = ["f1","f2","f3"];
                
             let result = array1.reduce((r,v)=>[...r,array2.map(m=>`${v} ${m}`).join(',')],[])
            
            console.log(result.join(','))
             

            【讨论】:

              【解决方案7】:

              带循环

              let array1 = ["aaa","bbb"];
              let array2 = ["f1","f2","f3"];
              
              let temp =[];
              let index=0;
              for(let i=0;i<array1.length;i++) {
                for(let j=0;j<array2.length;j++) {
                  temp[index] = `${array1[i]} ${array2[j]}`;
                  index++;
                }
              }
              
              console.log(temp);
              

              对于每个

                  array1.forEach(item1 => {
                  array2.forEach(item2 => {
                      tempNew.push(item1 + " " + item2)
                  })
               })
              
               console.log(tempNew);
              

              JSFiddle Fiddle

              【讨论】:

                【解决方案8】:

                您可以将Array.prototype.reduce()Array.prototype.map()spread syntaxtemplate literals 结合使用

                代码:

                const array1 = ["aaa", "bbb"];
                const array2 = ["f1", "f2", "f3"];
                
                const result = array1.reduce((a, c) => [...a, ...array2.map(f => `${c} ${f}`)], []);
                
                console.log(result);

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-07-30
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多