我想从另一个存在的数组创建一个二维数组,该数组是通过document.querySelectorAll()从网站上抓取的。我想根据数组的元素从两个添加到两个。让我给你看一个例子,让我更容易理解。
myArray = ["price $33", "extra $2", "price $54", "price $20", "extra $3.5", "price $25", "extra $2", "price $31"]
理论上,每两个元素都配对(带有“ extra”的字符串与带有“ price”的字符串相关)。但是,如您所见,有些价格没有附加值。每增加一个都以先前的价格出售。我想将价格及其额外费用以及单独的价格加在一起。像这样:
new array = [["price $33", "extra $2"], ["price $54"], ["price $20", "extra $3.5"], ["price $25", "extra $2"], ["price $31"]]
非常感谢你!
您可以缩小数组并检查字符串是否以开头extra
,然后推送最后一个数组,以该字符串添加新数组。
var array = ["price $33", "extra $2", "price $54", "price $20", "extra $3.5", "price $25", "extra $2", "price $31"],
result = array.reduce((r, s) => {
if (s.startsWith('extra')) r[r.length - 1].push(s);
else r.push([s]);
return r;
}, []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句