js常用的操作json数组

var array = [
  {
      "name": "满意1",
      "value": "100"
  },
  {
      "name": "满意2",
      "value": "20"
  },
  {
      "name": "满意3",
      "value": "80"
  }
];

1. 获取最大值

let maxValue =Math.max.apply(Math, array.map(function(o) {
	return o.value; // 需要比较的值
}))

2. 获取最小值

let minValue = Math.min.apply(Math, array.map(function(o) {
	return o.value; // 需要比较的值
}))

3. 对象转json数组

let result = {1: "1979-01-01,1", 2: "1979-01-01,1"};
var arr = [];  
for (var key in result) {
    arr.push({name:key,value:result[key]})
}
// [{"name":"1","value":"1979-01-01,1"},{"name":"2","value":"1979-01-01,1"}]

4. 要找到对应的id的值

array.find(item => { return item.projectId=='fff'}).projectName;

5. 数组多条件排序

jsonStudents = [
    { name: "Dawson", totalScore: "197", Chinese: "100", math: "97" },
    { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "97" },
    { name: "LiLei", totalScore: "185", Chinese: "88", math: "97" },
    { name: "XiaoMing", totalScore: "196", Chinese: "96", math: "100" },
    { name: "Jim", totalScore: "196", Chinese: "98", math: "98" },
    { name: "Joy", totalScore: "198", Chinese: "99", math: "99" }
];

jsonStudents.sort(function(a, b) {
    var value1 = a.totalScore,
        value2 = b.totalScore;
    //总分相同 
    if (value1 === value2) {
        // 按语文分数降序排序
        return b.Chinese - a.Chinese;
    }
    // 总分不同,降序排序
    return value2 - value1;
});

  1. 两个数组对象去除相同的数据
let arr1 = [{uid:'1',name:'当当'},{uid:'2',name:'威威'} ]
let arr2 = [{id:'1',name:'当当',age:'20'},{id:'2',name:'多多',age:'23'},{id:'3',name:'丁丁',age:'24'}]
es6
let newArr = arr2 .filter((item) => {
    return  !arr1 .some(ele=>ele.uid===item.id)
});
es5
for (var i=0; i<arr2.length; i++) {
    for (var j=0; j<arr1.length; j++) {
         if (arr2[i].id == arr1[j].id) {
             arr2.splice(i, 1);
         }
     }
 }
  1. json数组根据id去重
 const data2 = person.toppingData.reduce((preVal, curVal) => {
  hash[curVal.diffId] ? '' : hash[curVal.diffId] = true && preVal.push(curVal); 
   return preVal 
 }, [])
 // person.toppingData 为未去重的数组
 // diffId 是数组每个json里面用来做判断的值
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值