Javascript:使用map在每个循环中迭代多个项
Typescript也可以工作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函数
假设我有一个这样的数组
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分组