需要迭代最后两个对象
Need to iterate over the last two objects
我有如下值的对象数组,
{
[
{foo: a, bar: b}
]
}
我需要检查foo
的数组对象成员的最后两个值是否至少包含一个'x',所以当这样添加数据时,
{
[
{foo: a, bar: b},
{foo: x, bar: d},
{foo: e, bar: f}
]
}
它 returns 是的,
然而,当数据仍然为空或小于 1 时,它 returns 出错,因为 foo 尚未定义。
我尝试用 array[length - 2].foo === 'x'? : tit() : tat()
之类的 if 语句进行检查,但由于它不是 defined/added 但它仍未定义。
正确的检查方法是什么?奇怪的是我也不能用 else
来困住它
您可以使用 slice
方法执行此操作以获取最后 two
个元素。
array.slice(-2)
此外,使用some
方法检查foo
的数组对象成员是否至少包含一个'x'
,
let array= [{foo: 'a', bar: 'b'}, {foo: 'x', bar: 'd'}, {foo: 'e', bar: 'f'}];
console.log(array.slice(-2).some(a=>a.foo=='x'));
array=[];
console.log(array.slice(-2).some(a=>a.foo=='x'));
我有如下值的对象数组,
{
[
{foo: a, bar: b}
]
}
我需要检查foo
的数组对象成员的最后两个值是否至少包含一个'x',所以当这样添加数据时,
{
[
{foo: a, bar: b},
{foo: x, bar: d},
{foo: e, bar: f}
]
}
它 returns 是的, 然而,当数据仍然为空或小于 1 时,它 returns 出错,因为 foo 尚未定义。
我尝试用 array[length - 2].foo === 'x'? : tit() : tat()
之类的 if 语句进行检查,但由于它不是 defined/added 但它仍未定义。
正确的检查方法是什么?奇怪的是我也不能用 else
来困住它
您可以使用 slice
方法执行此操作以获取最后 two
个元素。
array.slice(-2)
此外,使用some
方法检查foo
的数组对象成员是否至少包含一个'x'
,
let array= [{foo: 'a', bar: 'b'}, {foo: 'x', bar: 'd'}, {foo: 'e', bar: 'f'}];
console.log(array.slice(-2).some(a=>a.foo=='x'));
array=[];
console.log(array.slice(-2).some(a=>a.foo=='x'));