Underscore: _.isEmpty рдЕрдВрдХреЛрдВ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЬрдире░ 2012  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jashkenas/underscore

var cow = {a: 1, b: {}, c: []};
_.isEmpty(cow); // returns false

ismpty рдХреЗрд╡рд▓ 'рдЧреИрд░-рдЦрд╛рд▓реА' рдорд╛рдиреЛрдВ рд╡рд╛рд▓реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

_.isEmpty(cow.a); // returns true

рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд k, a: 1 рдХреЛ рдЦрд╛рд▓реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рд╛ рдФрд░ рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ _.isEmpty рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╢рд╛рдЦрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рд╣реА рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ :-)

рдЙрдиреНрд╣реЛрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ _.isEmpty рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдорд╛рди (рдХреЛрдИ рдорд╛рди) рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдореБрджреНрджреЛрдВ рдкрд░ рднрд╛рдЧрддреЗ рджреЗрдЦрд╛ рд╣реИред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ "рдпрджрд┐ рд╡рд╕реНрддреБ рдореЗрдВ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рд░рд┐рдЯрд░реНрди рд╕рд╣реА рд╣реИ" - рдФрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрдбрд╝рд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣реИ рдЬреЛ рдХрд┐ рдореИрдВ рдЕрднреА рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реБрдЭрд╛рд╡ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдХреГрдкрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП :-)

рд╕рднреА 13 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЬрд┐рд╕ рдХреЗрд╕ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рд╡рд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛

_.each(cow, function(v, k) {
  if (_.isEmpty(v)) {
    // do something with k because of v being empty
  }
});

рддреЛ рдХрд╛рдЙред рдЧрд╛рдп рдХреЛ рдЧрд╛рдп рдХреА рддрд░рд╣ рд╣реА рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ (рдФрд░ рдпрджрд┐ рдпрд╣ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреА рднрд╛рд╡рдирд╛ рдпрд╛ рджреГрд╖реНрдЯрд┐ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ) рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╣рд╛рдВ, _.isEmpty рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдВрдмрд░реЛрдВ рдкрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рддрд╛рд░ рдареАрдХ рд╣реИрдВ:

https://github.com/documentcloud/underscore/commit/79f65b440ad5e14ff2c624a836a3eff33465be9f
https://github.com/documentcloud/underscore/blob/322a64135dc3c4a649f102e962054310c2b39c04/underscore.js#L808

рддреЛ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рд╣рдореЗрдВ рдХрд┐рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ?

@ рдЬрд╢рдХреЗрди рдпрд╛ @ рдмреНрд░рд╣реНрдордлрд▓ : рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг _.isNumber _.isEmpty рд╕рд╛рде рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ? (рдЗрд╕реА рддрд░рд╣ _.isArray рдФрд░ _.isString рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)

рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╕рд╣реА рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ :-)

рдЙрдиреНрд╣реЛрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ _.isEmpty рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдорд╛рди (рдХреЛрдИ рдорд╛рди) рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдореБрджреНрджреЛрдВ рдкрд░ рднрд╛рдЧрддреЗ рджреЗрдЦрд╛ рд╣реИред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ "рдпрджрд┐ рд╡рд╕реНрддреБ рдореЗрдВ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рд░рд┐рдЯрд░реНрди рд╕рд╣реА рд╣реИ" - рдФрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрдбрд╝рд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣реИ рдЬреЛ рдХрд┐ рдореИрдВ рдЕрднреА рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реБрдЭрд╛рд╡ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдХреГрдкрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП :-)

рдЖрдк рдХрднреА рднреА рдирдВрдмрд░ isEmpty рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдкрд░ рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ "рдпрджрд┐ рд╡рд╕реНрддреБ рдореЗрдВ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рд╕рдЪ рд╣реИ"

рдмрд┐рд▓рдХреБрд▓ рд╕рд╣реАред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдПрдХ рд╕рдВрдЦреНрдпрд╛ (рдмрд╣реБрдд рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ) рдПрдХ рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ _.isEmpty doc tweaks рдХреЗ рд╕рд╛рде рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рджреЗрд╡реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ _.isEmpty(a) рдорддрд▓рдм рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ " a рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рд╣реИ?", рдЗрд╕ рддрд░рд╣ рдХреА рддрд░рд╣ рдпрджрд┐ рдХрдерди: if obj == {} рдореВрд▓реНрдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рд╕рдВрджрд░реНрднреЛрдВ рдкрд░ рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рдУрдВ рдЬреИрд╕реЗ рдореВрд▓реНрдп рдЭреВрдареЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрд╢рдХреНрдд рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрдВрдЧреЗред

_.isEmpty рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

_.isEmpty = function(a) {
  return _.isEqual(a, {}) || _.isEqual(a, []) || _.isEqual(a, '');
}

@ рдЬрд╢рдХреЗрди рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдХреБрдЫ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ "рдЦрд╛рд▓реА" рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЪрд░ рдЦрд╛рд▓реА рд╣реИ рдпрд╛ рдирд╣реАрдВ :) http://www.php.net/manual/en/function.empty.php

+1 рд╕реЗ @ рдЬреЛрд╕рд░ - рдЬреНрдпрд╛рджрд╛рддрд░ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ PHP рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИ :-p
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рднреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рд╣рд░ рджреВрд╕рд░реЗ рд╣рдлреНрддреЗ рдЗрд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдореИрдВ рдЖрдЬ рдЗрд╕ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ .. рдореИрдВ рдЗрд╕реЗ _.omit рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛

_.omit(someObject, _.isEmpty);
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

arypbatista picture arypbatista  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

clouddueling picture clouddueling  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jdalton picture jdalton  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jdalton picture jdalton  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

umarfarooq125 picture umarfarooq125  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ