需要迭代最后两个对象

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'));