所以我得到了这个数组
const newItem = { id: 77, name: 'Test 77', obj: { name: 'Sub Name 77' } };
//instead of this.model.items[0] = newItem; use below
this.model.items.splice(0, 1, newItem);
并且使用lodash需要找到年龄小于50岁的所有人。 我试过这个_.map看看它是否可行
var gillFamily = [{name: 'john', age: 20},
{name: 'richard', age: 27},
{name: 'debbie', age: 55},
{name: 'dan', age 25},
{name: 'robin', age 60}]
并且有些过滤并减少了有问题的东西,但是无法得到它,谢谢
答案 0 :(得分:1)
_.map()
转换数组。它不会删除元素。例如,如果您的输入数组是
const family = [
{name: 'john', age: 20},
{name: 'richard', age: 27},
{name: 'debbie', age: 55},
{name: 'dan', age: 25},
{name: 'robin', age: 60}
]
您可以使用它将其转换为包含人物描述的数组:
_.map(family, p => p.name + " is " + p.age + " years old")
你最终会:
[
'john is 20 years old',
'richard is 27 years old',
'debbie is 55 years old',
'dan is 25 years old',
'robin is 60 years old'
]
要获得包含50岁以下人员的数组,一种方法是使用_.filter()
:
_.filter(family, p => p.age < 50)
但是,这不是唯一的方法。使用lodash还有很多其他方法可以实现相同的功能,ES6还提供了map()
和filter()
natively。
答案 1 :(得分:0)
您需要使用filter
功能。 filter函数迭代集合的元素,返回满足条件的所有元素的数组。更多信息here。
map
用于将数组从一种形式转换为另一种形式,但不符合您的要求。
var gillFamily = [{name: 'john', age: 20},
{name: 'richard', age: 27},
{name: 'debbie', age: 55},
{name: 'dan', age: 25},
{name: 'robin', age: 60}];
var ageLessThan50 = _.filter(gillFamily, person => person.age < 50);
console.log(ageLessThan50);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>