数组对象筛选

467 阅读1分钟

关于数组对象的筛选

1、数组转为数组对象


['banana', 'apple', 'orange']   转换为

[{url:'banana'},{url:'apple'},{url:'orange'}]

var fruits = ['banana', 'apple', 'orange'];

const newarr = fruits.map(item => ({ url: item }))

console.log(newarr)

2、数组对象对象去重

[{a:1},{b:2},{a:1}]  

let arr1 = [
	     {id: 1, value:'a'},
	     {id: 2, value:'b'},
	     {id: 1, value:'a'},
	     {id: 3, value:'c'}
            ]
	 
let obj = {}
let res = arr1.reduce((prev, cur) => {
	obj[cur.id] ? '' : obj[cur.id] = true && prev.push(cur)
	  return prev
   },[])
   console.log(res )   

3.解析出对象数组中的英文字母

const arrs = [{a:1,b:'A'}, {a:2,b:'B'},{a:3,b:'C'}, {b:'D'},{a:5,b:'E'}]

const logs = arrs.filter((item)=>{ 
   	if(item?.a) {
   	   return item.a;
   	  }
   	}).map((item)=>{ 
   	  if(item?.b) {
   	     return item.b;
   	   }
   	});

console.log(logs) ['A','B','C','D']

4、将对象中的键值作为键名组成新的数组对象

var fruits = [
	{
	name:'banana',
	value:1
	},
	{
        name:'apple',
	value:2
	},
  ]
const res = fruits.map(item => {
	const object = {};
	object[item.name] = item.value
		 return object
		})
console.log(res)  //[ { banban:1}, { apple:2} ];

4、 数组变成数组对象

let record = [
		[
			{'name':'Amy'},
			{'age':12},
			{'sex':'girl'}
		],
		[
			{'name':'Tom'},
			{'age':13},
			{'sex':'boy'}
		],
	]
	// 转换为
	let newRecord = [
			{
			'name':'Amy',
			'age':12,
			'sex':'girl'
			},
			{
			'name':'Tom',
			'age':13,
			'sex':'boy',
			}
	]
       newRecord = record.map(item=>{
		let obj = {};
		item.forEach(i=>{
			obj = {...obj,...i}
		})
		return obj;
	})
	console.log(newRecord)


5、数组对象中的键值放入数组中

let tt = [
	{name: 'scene1', number: 1},
	{name: 'scene2', number: 5},
	{name: 'scene1', number: 2},
	{name: 'scene2', number: 6},
	{name: 'scene1', number: 3},
	{name: 'scene2', number: 3},
	];
	
	
	const obj = {};
	tt.forEach(item => {
	if (!obj[item.name]) {
	obj[item.name] = [item.number]
	} else {
	obj[item.name].push(item.number)
	}
	})
	
	const vv = Object.keys(obj).map(key => {
	return {
	name: key,
	number: obj[key]
	}
	})
	console.log('vv', vv)
        //    [ 
               {name: 'scene1', number: [1,2,3]},
               {name: 'scene2', number:[5,6,3]}
               ]
 
  

\