需要迭代最后两个对象

时间:2017-09-28 11:55:01

标签: javascript arrays function object conditional

我的对象数组的值如下,

{
 [ 
   {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

来捕获它

1 个答案:

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