如何解决根据序列中的相同值过滤JS数组
const cars = [
{year: "2003",made: "BMW"},{year: "2004",made: "Honda"},{year: "2005",{year: "2006",made: "Mercedes"},{year: "2007",{year: "2008",{year: "2009",];
预期输出:
const output = [
[
{year: "2003",],[
{year: "2004",[
{year: "2005",[
{year: "2006",[
{year: "2007",].
[
{year: "2008",];
我希望以上代码段中的要求已经明确。主要思想是根据键的匹配值从现有数据创建数组对象或多维数组。在上面的示例中,made
键被过滤。
解决方法
使用reduce
并检查先前制作的内容是否等于当前制作的内容,然后将其添加到相同的索引中,否则将其压入结果
const cars = [
{year: '2003',made: 'BMW'},{year: '2004',made: 'Honda'},{year: '2005',{year: '2006',made: 'Mercedes'},{year: '2007',{year: '2008',{year: '2009',];
let carsResult = [];
cars.reduce((prev,curr) => {
if (curr.made != prev.made) {
carsResult.push([curr])
} else {
carsResult[carsResult.length - 1].push(curr)
}
return curr
},{})
console.log(carsResult)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。