JS - 一个数组对象中是否包含另一个数组对象中的值

1.   改造数组结构,返回想要的结构

[
	{
		name:'小明',
		age:'18',
		address:'地址111'
	},
		{
		name:'小红',
		age:'19',
		address:'小红地址'
	},
		{
		name:'小明',
		age:'20',
		address:'地址222'
	},
		{
		name:'小明',
		age:'5',
		address:'地址333'
	},
]

//想处理成----->

[
	{
		name:小明,
		list:[{
			age:18,
			address:'地址111'
		},
		{
			age:'20',
			address:'地址222'
		},
		{
			age:'5',
			address:'地址333'
		},]
	},
	{
		name:'小红',
		list:[{
			age:'19',
			address:'小红地址'
		}]
	}
]
let arr = res.data
            let dataInfo = {};
            arr.forEach((item, index) => {
              let { name } = item;
  
              if (!dataInfo[name]) {
                dataInfo[name] = {
                  name,
                  child: []
                }
              }
              dataInfo[name].child.push(item);
            });
            let list = Object.values(dataInfo); // list 转换成功的数据

2.1  返回对应的下标

 //两个数组对象中查看 其中一个数组对象是否包含另一个数组对象中的值
      let arr = [
        {key:1,val:"张三"},
        {key:2,val:"王五"},
        {key:3,val:"李四"},
        {key:4,val:"刘超"},
        {key:5,val:"赵四"}
      ]
      let arr2 = [
        {key:1,val:"张三"},
        {key:2,val:"王五"},
        {key:6,val:"666"},
        {key:7,val:"777"},
        {key:8,val:"888"},
        {key:9,val:"999"},
      ]
      //如果能找到就返回对应的下标,如果找不到,就返回-1
      for(let i=0;i<arr.length;i++){
        const Index = arr2.findIndex((item) => {return item.key === arr[i].key})
        console.log(Index);  // 0、1、-1、-1、-1
        // 前两个数据的key值相同,打印出对应的下标 ,后面找不相同的key  输出-1
      }

2.2  返回对应的对象

//两个数组对象中查看 其中一个数组对象是否包含另一个数组对象中的值
      let arr = [
        {key:1,val:"张三"},
        {key:2,val:"王五"},
        {key:3,val:"李四"},
        {key:4,val:"刘超"},
        {key:5,val:"赵四"}
      ]
      let arr2 = [
        {key:1,val:"张三"},
        {key:2,val:"王五"},
        {key:6,val:"666"},
        {key:7,val:"777"},
        {key:8,val:"888"},
        {key:9,val:"999"},
      ]
      
      for(let task of arr){
        const itemJson = arr2.find((item)=>{return item.key === task.key});
        console.log(itemJson)
        //{key: 1, val: "张三"}
        //{key: 2, val: "王五"}
        // 3 undefined
       // 如果有相同的值那么就返回对应的对象 如果没有则返回 undefined
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值