Javascript:使用map在每个循环中迭代多个项

Javascript:使用map在每个循环中迭代多个项,javascript,reactjs,typescript,ecmascript-6,Javascript,Reactjs,Typescript,Ecmascript 6,Typescript也可以工作 假设我有一个这样的数组 const array = ['one', 'two', 'three', 'four', 'five'] 我想生产一些看起来像 <div> one two </div> <div> three four </div> <div> five </div> 一 二 三 四 五 如果我想使用map函数

Typescript也可以工作


假设我有一个这样的数组

const array = ['one', 'two', 'three', 'four', 'five']
我想生产一些看起来像

  <div>
    one
    two
  </div>
  <div>
    three
    four
  </div>
  <div>
    five
  </div>

一
二
三
四
五
如果我想使用map函数,就我所知,我必须编写如下代码

{
  let saved
  array.map((item) => {
    if (saved === ''){
      let temp = saved
      saved = ''
      return (  
        <div>{`${item} ${temp}`}</div>
      )
    }else{
      saved = item
    }
  })
}
{
得救
array.map((项)=>{
如果(已保存==''){
让温度=保存
已保存=“”
报税表(
{`${item}${temp}`}
)
}否则{
保存=项目
}
})
}
但是我想清理一下这个代码。我正在寻找一种方法,我可以使用map函数(或forEach)在数组上一次迭代2+个项目,这样上面的代码可以缩短为下面的代码,并产生相同的结果

array.map((item1, item2) => <div>{`${item1} ${item2}`}</div>)
array.map((item1,item2)=>{`${item1}${item2}})

只需使用带有i+2的
循环,而不是i++

const displayValue = () => {
    let content;

    for(let i = 0; i <= array.length; i+2){
      content += <div>{array[i]} {i+1 <= array.length ? array[i+1] : ''}</div>
    }

    return content;
  };
constdisplayvalue=()=>{
让内容;

for(设i=0;i只需使用i+2而不是i++的
for
循环即可

const displayValue = () => {
    let content;

    for(let i = 0; i <= array.length; i+2){
      content += <div>{array[i]} {i+1 <= array.length ? array[i+1] : ''}</div>
    }

    return content;
  };
constdisplayvalue=()=>{
让内容;
对于(设i=0;i
const chunk=(arr,size)=>
from({length:Math.ceil(arr.length/size)},(v,i)=>
arr.slice(i*大小,i*大小+大小)
);
设arr=chunk([1,2,3,4,5],2);
arr.map(item=>item.length>1?`${item[0]}${item[1]}`:`${item[0]}`)
const chunk=(arr,size)=>
from({length:Math.ceil(arr.length/size)},(v,i)=>
arr.slice(i*大小,i*大小+大小)
);
设arr=chunk([1,2,3,4,5],2);
arr.map(item=>item.length>1?`${item[0]}${item[1]}`:`${item[0]}`)
让htmlString=``
让biArray=['1','2',['3','4']]
双数组映射(函数(elem){
htmlString=[…htmlString,`${elem[0]}${elem[1]}`]
//console.log(htmlString)
})
让htmlString=``
让biArray=['1','2',['3','4']]
双数组映射(函数(elem){
htmlString=[…htmlString,`${elem[0]}${elem[1]}`]
//console.log(htmlString)
})

您可以使用切片方法将数组分割为多个部分。请尝试此操作

constdisplaychunk=(arr)=>
{
设newArr=[];
对于(设i=0;i{el[0]}{el[1]?{el[1]}:“}”)
}

您可以使用切片方法将数组分割为多个部分。请尝试此操作

constdisplaychunk=(arr)=>
{
设newArr=[];
对于(设i=0;i{el[0]}{el[1]?{el[1]}:“}”)
}

是的,这是一个总体思路,如果能像map函数那样对其进行总结,并将i+1边界问题考虑在内,那就太棒了well@Sam我编辑了我的答案,不能在stackblitz上测试它坏了,但我认为它应该可以完成任务。是的,这是一般的想法,如果有什么东西可以总结一下,那就太棒了尽管像map函数一样,并考虑i+1边界问题well@Sam我编辑了我的答案,不能在stackblitz上测试它被破坏了,但我认为它应该做这项工作。这将涉及到将数组初始化为2d数组,我说的是使用1d数组来解决这个问题,因为这样我可以使它更灵活,并且分组3或4如果我改变主意,这将涉及将数组初始化为2d数组,我说的是使用1d数组来解决这个问题,因为如果我改变主意,我可以使它更灵活,并按3或4分组