Утверждение, что все элементы массива являются объектами

Как я могу утверждать, что все элементы списка являются объектами?

should.exist(list)

list.should.be.an('array')

... // ?

1 ответ

Если мы говорим о should, вы можете использовать такой метод:

> var should = require('./');
> var list1 = [1, 2, 3];
> var list2 = [1, { a: 10}, 3];
> var list3 = [{ a: 11}, {b: 10}];
> list1.should.matchEvery(function(it) { return it.should.be.an.Object(); });
AssertionError: expected Array [ 1, 2, 3 ] to match each Function { name: '' }
    expected 1 to match Function { name: '' }
        expected 1 to be an object
            expected 1 to have type object
                expected 'number' to be 'object'
    at Assertion.fail (/Users/den/Projects/shouldjs/should.js/lib/assertion.js:180:17)
    at Assertion.prop.value (/Users/den/Projects/shouldjs/should.js/lib/assertion.js:65:17)
    ...

> list2.should.matchEvery(function(it) { return it.should.be.an.Object(); });
AssertionError: expected Array [ 1, Object { a: 10 }, 3 ] to match each Function { name: '' }
    expected 1 to match Function { name: '' }
        expected 1 to be an object
            expected 1 to have type object
                expected 'number' to be 'object'
    at Assertion.fail (/Users/den/Projects/shouldjs/should.js/lib/assertion.js:180:17)
    at Assertion.prop.value (/Users/den/Projects/shouldjs/should.js/lib/assertion.js:65:17)
    ...

> list3.should.matchEvery(function(it) { return it.should.be.an.Object(); });
{ obj: [ { a: 11 }, { b: 10 } ],
  anyOne: false,
  negate: false,
  params: 
   { operator: 'to match each Function { name: \'\' }',
     message: undefined } }
> 

Так что я использовал .matchEvery и проверил, что каждый элемент является объектом. Вы можете обратиться к api docs для большего количества примеров.

Другие вопросы по тегам