var cow = {a: 1, b: {}, c: []};
_.isEmpty(cow); // returns false
isEmpty๋ '๋น์ด ์์ง ์์'๊ฐ์ผ๋ก ์ซ์๋ฅผ ํฌํจํ๋ ๊ฐ์ฒด์์ ์ ์๋ํฉ๋๋ค.
_.isEmpty(cow.a); // returns true
๊ทธ๋ฌ๋ a : 1์ ๊ฐ๋ณ k, v๋ ๋น์ด์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๋๋ ๋ฌธ์ ๋ฅผ ์ฝ์๊ณ ์๋ _.isEmpty๋ ๋ฌธ์์ด์์ํ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์๋ ๋ ๊ฒ์ผ ์ ์๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ์๋ํ์ง ์์ ๊ฒฝ์ฐ ํ ๋ฆฌํ์คํธ๋ฅผ ํ ์์๋ ๋ธ๋์น๊ฐ ์์ต๋๋ค.
๋ด๊ฐ ๋ง๋ ์ ์ค ์ผ์ด์ค๋ ๋ค์๊ณผ ๊ฐ์ ์ผ์ํ์ต๋๋ค.
_.each(cow, function(v, k) {
if (_.isEmpty(v)) {
// do something with k because of v being empty
}
});
๋ฐ๋ผ์ cow.a๋ cow.b ๋ฐ cow.c์ฒ๋ผ ์ทจ๊ธ๋ฉ๋๋ค. ๋๋ ์ฃผ๋ณ์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ง๋ง, ํ์ํ์ง ์์ผ๋ฉด (๊ทธ๋ฆฌ๊ณ ๋ฐ์ค์ ์ ์ ์ด๋ ๋น์ ์ ๊นจ์ง ์์ผ๋ฉด) ํจ์ฌ ๊น๋ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋ค, _.isEmpty
๋ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ๋ํด์๋ง ์ ์๋ฉ๋๋ค. ๋ฌธ์์ด์ด๋ ์ซ์์ ์ฌ์ฉํด์๋ ์๋ฉ๋๋ค.
์ซ์์ ์ฌ์ฉํด์๋ ์๋ฉ๋๋ค. ๋ฌธ์์ด์ ๊ด์ฐฎ์ต๋๋ค.
https://github.com/documentcloud/underscore/commit/79f65b440ad5e14ff2c624a836a3eff33465be9f
https://github.com/documentcloud/underscore/blob/322a64135dc3c4a649f102e962054310c2b39c04/underscore.js#L808
๊ทธ๋ ๋ค๋ฉด ์ซ์์ ์ด๋ค ๋์์ ์ฌ์ฉํด์ผํฉ๋๊น?
@jashkenas ๋๋ @michaelficarra : _.isNumber
๊ฐ _.isEmpty
์์ ํธ์ถ๋์ง ์๋ ํน๋ณํ ์ด์ ๋ ๋ฌด์์
๋๊น? (๊ฐ์ ๋ฐฉ์์ผ๋ก _.isArray
๋ฐ _.isString
์ฌ์ฉ)
์ ๊ทธ๋์ผํ๋์?
๋ค, ๊ทธ๋ ์ต๋๋ค. ๋ฌผ์ด๋ด์ ๊ธฐ๋ป์ :-)
๋๋ถ๋ถ์ ์ฌ๋๋ค์ด _.isEmpty
์ฌ์ฉํ๋ ๊ฒ์ ๋ณธ ๋ฐฉ์์ ๊ฐ (๋ชจ๋ ๊ฐ)์ด ํน์ ๋ณ์์ ํ ๋น๋์๋์ง ํ์ธํ๋ ๊ฒ์
๋๋ค. ์ด ๋๋ฌธ์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ๋ฌธ์ ์ ๋ถ๋ชํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
๊ณต์ ๋ฌธ์์์๋ "๊ฐ์ฒด์ ๊ฐ์ด์๋ ๊ฒฝ์ฐ true๋ฅผ ๋ฐํํฉ๋๋ค"๋ผ๊ณ ๋์ ์์ผ๋ฉฐ ์ซ์๋ ๊ฐ์ผ๋ก ํ์ ๋์ด์ผํฉ๋๋ค.
๋ด๊ฐ ๋ณผ ์์๋์ด ๋ณ๊ฒฝ์ ๋ง๋๋ ๋ฐ ๋ ํฐ ์๋ฏธ๊ฐ ์๋ค๋ฉด ๋ ๋ฒ์งธ๋ก ์ข์ ์ ์์ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ์ซ์์ ์ฌ์ฉํด์๋ ์๋๋ค๋ ๊ฒ์ ๋ช ํํ๊ฒ ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค :-)
์ซ์๊ฐ null์ธ์ง ํ์ธํ๋ ๋์ isEmpty
์ซ์๋ฅผ ์ ๋ฌํ๋ ค๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๊ณต์ ๋ฌธ์์๋ "๊ฐ์ฒด์ ๊ฐ์ด ์์ผ๋ฉด true๋ฅผ ๋ฐํํฉ๋๋ค"๋ผ๊ณ ๋์ ์์ต๋๋ค.
๋ง์ต๋๋ค. JavaScript์์ ์ซ์๋ (๋งค์ฐ ์ฌํ๊ฒ๋) ๊ฐ์ฒด๊ฐ ์๋๋๋ค.
_.isEmpty
๋ฌธ์ ์กฐ์ ์ผ๋ก์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ฐพ๊ณ ์๋ ๊ฒ์ _.exists ์
๋๋ค.
๊ทธ๊ฒ์์ ์ํด ์๋ฏธ๊ฐ _.isEmpty(a)
"์๋ฏธํ๋ a
๋น ๊ฐ์ฒด?", ์ข
๋ฅ์ ๊ฒฝ์ฐ์ฒ๋ผ ๋ฌธ์ : if obj == {}
๊ฐ์ด ์๋ ์ฐธ์กฐ ์ผํ๋ค. ๋ฐ๋ผ์ ์ซ์์ ๊ฐ์ ๊ฐ์ false๋ฅผ ๋ฐํํ๋ฏ๋ก null ๋ฐ undefined๊ฐ ๋ฐํ๋ฉ๋๋ค.
_.isEmpty
๊ตฌํ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
_.isEmpty = function(a) {
return _.isEqual(a, {}) || _.isEqual(a, []) || _.isEqual(a, '');
}
@jashkenas ๋ค๋ฅธ ์ธ์ด์์๋ "๋น์ด ์์"์ด ๋ณ์๊ฐ ๋น์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. :) http://www.php.net/manual/en/function.empty.php
@josser์ + :-p
ํ์ง๋ง ๋ฌธ์์์ ๋ช
ํํํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ฌ๋๋ค์ด ๊ฒฉ์ฃผ๋ก ์ด๊ฒ์ ์คํํ๋ ๊ฒ์ ์ง์งํ๊ฒ ๋ด
๋๋ค.
์ค๋ ๋ง๋ฌ๋๋ฐ .. _.omit์ ํจ๊ป ์ฌ์ฉํ๊ณ ์์๋๋ฐ
_.omit(someObject, _.isEmpty);
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค, ๊ทธ๋ ์ต๋๋ค. ๋ฌผ์ด๋ด์ ๊ธฐ๋ป์ :-)
๋๋ถ๋ถ์ ์ฌ๋๋ค์ด
_.isEmpty
์ฌ์ฉํ๋ ๊ฒ์ ๋ณธ ๋ฐฉ์์ ๊ฐ (๋ชจ๋ ๊ฐ)์ด ํน์ ๋ณ์์ ํ ๋น๋์๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์ด ๋๋ฌธ์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ๋ฌธ์ ์ ๋ถ๋ชํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค.๊ณต์ ๋ฌธ์์์๋ "๊ฐ์ฒด์ ๊ฐ์ด์๋ ๊ฒฝ์ฐ true๋ฅผ ๋ฐํํฉ๋๋ค"๋ผ๊ณ ๋์ ์์ผ๋ฉฐ ์ซ์๋ ๊ฐ์ผ๋ก ํ์ ๋์ด์ผํฉ๋๋ค.
๋ด๊ฐ ๋ณผ ์์๋์ด ๋ณ๊ฒฝ์ ๋ง๋๋ ๋ฐ ๋ ํฐ ์๋ฏธ๊ฐ ์๋ค๋ฉด ๋ ๋ฒ์งธ๋ก ์ข์ ์ ์์ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ์ซ์์ ์ฌ์ฉํด์๋ ์๋๋ค๋ ๊ฒ์ ๋ช ํํ๊ฒ ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค :-)