記事の検証マップがあります。オブジェクトのプロパティとして関数をすべて使用する
var articleMap = {
author: function (author) {
if(author) {
return author.length > 0;
}
},
title: function (title) {
if (!title) {
return title.length > 0;
}
}
};
そして、これが
var article =
{
id: '1',
title: '«Title',
summary: 'Summary',
createdAt: new Date(2017, 3, 5, 8, 0),
author: 'John',
content: 'Content',
tags: ['tag1', 'tag2'],
picture: 'images/id_1.jpeg'
};
を検証するために、物品の一例であると私はObject.keys
ごとに使用する場合、それが唯一の最初のキーを使用しています。しかし、私がforEach
を使用すると、すべてが問題ありません。また、記事にいくつかのキーがない場合(例えば'content'
)、私のコードが正しく動作する必要があります。私は何を修正すべきですか?
Object.keys(articleMap).every(function (item) {
alert(articleMap[item](article[item]));
});
これは、あなたが偽であるコールバックから何も返さない( 'undefined')ためです。 – georg
@georg https://jsfiddle.net/q4stx5mn/これは正しいですか? – Vladislav
'if(!title)return title.length> 0;'意味がない – Bergi