我的对象数组的值如下,
{
[
{foo: a, bar: b}
]
}
我需要检查foo
的数组对象成员的最后两个值是否至少包含一个' x',所以当像这样添加数据时,
{
[
{foo: a, bar: b},
{foo: x, bar: d},
{foo: e, bar: f}
]
}
它返回true, 但是当数据仍为空或小于1时它会返回错误,因为foo尚未定义。
我尝试检查if array[length - 2].foo === 'x'? : tit() : tat()
这样的语句,但由于它没有定义/添加但它保持未定义。
检查的正确方法是什么?奇怪的是,我无法用else
答案 0 :(得分:1)
您可以使用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'));