前言:真的很多时候觉得哈希Map好用爆了😂😂,不过数组对象相对来说是更灵活一点吧,两个东西灵活时候在开发的时候效率和问题解决,包括很多算法题的解决都能杠杠上去
获取数组对象中,对象中的某个值(key)为指定值
比如现在有个数组对象a
1 2 3 4 5 6 7 8 9
| var a = [ { age: 22, name: "AA" }, { age: 23, name: "BB" }, { age: 24, name: "CC" }, { age: 25, name: "DD" }, { age: 100, name: "EE" }, { age: 100, name: 'FF' }, { age: 200, name: 'RR' } ]
|
我想获取,age为100的对象
通过filter方法来实现,可以获取满足条件的数组对象
1 2 3 4 5 6 7 8 9 10
| var a = [ { age: 22, name: "AA" }, { age: 23, name: "BB" }, { age: 24, name: "CC" }, { age: 25, name: "DD" }, { age: 100, name: "EE" }, { age: 100, name: 'FF' }, { age: 200, name: 'RR' } ] console.log(a.filter(item => item.age == 100))
|
获取数组对象中,某个key的数组
比如我要获取a的age的数组,可以通过map来实现
1 2 3 4 5 6 7 8 9 10
| var a = [ { age: 22, name: "AA" }, { age: 23, name: "BB" }, { age: 24, name: "CC" }, { age: 25, name: "DD" }, { age: 100, name: "EE" }, { age: 100, name: 'FF' }, { age: 200, name: 'RR' } ] console.log(a.map(item => item.age))
|
扩展
另外map方法也可以对特定item中的某个的值进行判断,返回一个数组,如下,满足条件的对象的所处下标,在数组中是true
获取数组对象中某个属性的最大值或最小值
比如我想获取a中age最大的那个item
- 首先用map吧age的数组输出到数组b
- 然后用Math方法找到最大的age,用c保存起来
- 然后找到该最大的age——c在数组b中的位置
- 然后把这个index记下来
- 然后输出原数组中该index位置下的对象即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| function getMaxObject(nums) { var b = nums.map(item => item.age); var c = Math.max.apply(Math, b); index = b.indexOf(c); if (index === -1) { return false } else { return nums[index]; } } function getMinObject(nums) { var b = nums.map(item => item.age); var c = Math.min.apply(Math, b); index = b.indexOf(c); if (index === -1) { return false } else { return nums[index]; } } const a = [ { age: 22, name: "AA" }, { age: 23, name: "BB" }, { age: 24, name: "CC" }, { age: 25, name: "DD" }, { age: 100, name: "EE" }, { age: 100, name: 'FF' }, { age: 200, name: 'RR' } ] console.log(getMaxObject(a)); console.log(getMinObject(a));
|