Tumgik
#for in
phrynewrites · 2 years
Note
I had tequila mini babies too but they’re alllll gone
Vacation Wren on tequila and mikes hard makes you silly and have opinions on donuts, serial killer aus, and toddlers and tiaras
5 notes · View notes
obscurejavascript · 6 years
Text
Getting the First Key Of An Object In JavaScript
The simplist way to get the first key of an object is to use just the first part of a for..in:
function getFirstKey(obj) { let key; for (key in obj) { // Add if (obj.hasOwnProperty(key)) {} if inherited properties should not // be counted. break; } return key; } const obj = { property1: 'value1', property2: 'value2', }; console.log(getFirstKey(obj));
Unlike methods which use something like Object.keys(), this does not require iterating through any more keys than the first. Which can be a concern for very large objects.
Github Location https://github.com/Jacob-Friesen/obscurejs/blob/master/2018/getFirstKey.js
13 notes · View notes
Text
What to look for in an integration platform
What to look for in an integration platform
The landscape for integration platforms continues to evolve. Cloud, Hybrid, Mobility, SaaS connectivity, API Management and MicroServices are introducing new architectural patterns and requirements.
View On WordPress
1 note · View note
smcharo · 10 years
Text
for car in cars: print car
0 notes
studyjs · 10 years
Text
6.6 객체와 배열을 사용한 데이터 관리
성적 총점과 평균구하기
1.학생데이터 정리. 배열의 push() 메서드를 사용하여 배열에 요소를 대입
//배열생성 var students = []; students.push({이름: '홍길동', 국어: 88, 영어: 89, 수학: 70, 과학: 88}); students.push({이름: '홍말동', 국어: 89, 영어: 84, 수학: 40, 과학: 80}); students.push({이름: '홍정동', 국어: 80, 영어: 69, 수학: 80, 과학: 98}); students.push({이름: '홍송동', 국어: 98, 영어: 99, 수학: 90, 과학: 98}); students.push({이름: '홍겁동', 국어: 68, 영어: 69, 수학: 60, 과학: 68}); students.push({이름: '홍답동', 국어: 78, 영어: 79, 수학: 70, 과학: 78}); students.push({이름: '홍상동', 국어: 98, 영어: 68, 수학: 93, 과학: 99}); students.push({이름: '홍날동', 국어: 84, 영어: 49, 수학: 40, 과학: 48}); students.push({이름: '홍사동', 국어: 83, 영어: 39, 수학: 73, 과학: 38}); students.push({이름: '홍자동', 국어: 85, 영어: 59, 수학: 70, 과학: 100});
2.각각의 객체에 같은 메서드를 모두 직접 입력하는 것은 비효율적이므로 반복문을 사용하게 되면 students안의 모든 객체는 getSum() 메서드와 getAverage() 메서드를 갖게 된다.
//배열생성 /*생략*/ //매서드 추가 for (var i in students) { //총점 students[i].getSum = function () { return this.국어 + this.수학 + this.영어 + this.과학; }; //평균 students[i].getAverage = function () { return this.getSum() / 4; }; }
3. students의 객체 이름, 총점, 평균을 출력. for in 반복문으로 배열 students의 요소에 접근하고 문자열을 만들어 출력한다.
//배열생성 /*생략*/ //매서드 추가 /*생략*/ //출력 var output = '이름\t총점\t평균\n'; for (var i in students) { with (students[i]) { output += 이름 + '\t' + getSum() + '\t' + getAverage() + '\n'; if (students[i] > 300) { output += 이름 + '1'; } } } console.log(output);
0 notes
jablonczay · 12 years
Text
Objektumok-tulajdonságok elérése és a for … in JavaScript-ben
Objeltumok használata
A JavaScriptben minden objektum, a függvény, a tömbök, a változók, stb… Az objektumot kapcsos zárójelek határolják. JavaScript-ben nem létezik asszociatív tömb, csak indexei lehetnek, viszont objektumokkal kiválthatjuk őket, ugyanis egy objektum tulajdonság-érték párokból áll. Minden tulajdonság után kettőspont, az értékek után pedig vessző áll, ami alól csak az utolsó tulajdonság értéke a kivétel, ahonnan viszont el kell hagynunk a vesszőt. Ha véletlenül benne felejtjük, akkor az IE7 nagy valószínűséggel ki fogja akasztani a weboldalt. Nézzünk is rögtön egy példát, amiben létrehozunk egyet.
var obj = { name: 'Sam', age: 28, sex: 'male' };
Egy objektum tulajdonságának elérése, értékének kikérése az alábbi módokon történhet:
var obj = { name: 'Sam', age: 28, sex: 'male' }; // 1. console.log(obj.name); // 2. console.log(obj[name]); // 3. console.log(obj[0]); // 4. console.log(obj['name']);
Az első verzió egyszerű és rövid. Számomra ez az objektum-tulajdonság elérési mód a legszimpatikusabb.
A második verzióra olyankor lehet szükség, hogyha változóból akarjuk kinyerni egy tulajdonság – másnéven property – nevét. Ilyen eset lehet például, hogyha for…in-nel körbemegyünk egy objektumon.
A harmadik esetben a tuladonság neve olyan mint a tömbben egy index, tehát egy szám. Ezt nem szokás használni objektumoknál, (tömböknél így működik) de ettől függetlenül lehetséges.
A negyedik esetben sztringként adjuk meg a tulajdonság nevét. Ha nem így tennénk, akkor 2. verzióban említett módon egy változót keresne a program, ami csak akkor szerencsés, ha éppen ez a célunk.
Objektum-tulajdonság meglétének vizsgálata
Az alábbi kódban azt vizsgáljuk, hogy egy objektumban az adott tulajdonság létezik-e. A az objektum-tulajdonságnak sztringnek kell lennie a feltételben:
var obj = { name: 'Sam', age: 28, sex: 'male' }; if ('name' in obj) { console.log('A name tulajdonság létezik.'); }
Objektum egyik tulajdonságából a másik tulajdonságának elérése
A this JavaScript kulcsszó egy objektumra mutat, kérdés csak az, hogy melyikre…
var obj = { a: 10, b: function () { console.log(this, this.a + 1); return (this.a + 1); // 10 + 1 }, c: { a: 20, b: function () { console.log(this, this.a + 1); return (this.a + 1); // 20 + 1 } } }; // 1. obj.b(); // 2. obj.c.b();
A fenti példában látható, hogy lérehozunk egy függvényt és azon belül arra használjuk a this kulcsszót, hogy az objektum egy másik tulajdonságát használatba vegyük. A this kulcsszó értéke arra az objektumra mutat, melynek tulajdonságaként a függvény hívása megtörténik. Példával szemléltetve az első esetben az alapobjektum egy tulajdonságából érünk el this-szel egy máik tulajdonságot. A második esetben annyi változik, hogy az alapobjektum egy tulajdonságának újra egy objektumot adunk értékül, amin belül az egyik tulajdonságnak szintén van egy függvénye, ami a this kulcsszóval éri el az aktuális objektumnak megfelelő tulajdonságot, ami itt már az alapobjektum "c" tulajdonsága lesz.
Ha egy függvényt nem konstruktorként használunk, a this akkoris egy objektumra fog mutatni, méghozzá az ősobjektumra, a window-ra.
Ha azonban egy függvényt konstruktorként használjuk, a this az "osztály példányára" fog mutatni. Amikor a konstruktor egy publikus függvényébe egy privát láthatóságú függvényt helyezünk és innen próbáljuk elérni az objektumot a this-szel, nem sikerül, mert az a window-ra mutat.
var classFoo = function () { this.num = 10; this.init = function () { console.log(String(this), this.num); // [object Object] 10 (function () { console.log(String(this), this.num); // [object Window] undefined }()); }; }; var oFoo = new classFoo(); oFoo.init();
Annak kiküszöbölésére, hogy a this-t elérjük a privát függvényen belül is, be tudunk vezetni egy segédváltozót mindjárt a konstruktor függvény elején, ami eltárolja a this értékét (jelen esetben: that), így azzal hivatkozhatunk a privát a "példányváltozóra".
var classFoo = function () { var that = this; // eltároljuk a this kulcsszó értékét this.num = 10; this.init = function () { console.log(String(this), this.num); // [object Object] 10 (function () { // this kulcsszóval a változó továbbra sem elérhető console.log(String(this), this.num); // [object Window] undefined // felhasználjuk a this kulcsszó értékét; így már elérhető a "példányváltozó" console.log(String(that), that.num); // [object Object] 10 }()); }; }; var oFoo = new classFoo(); oFoo.init();
Menjünk körbe egy objektumon
Tömbök bejárására ne használjuk a for … in szerkezetet!
Amikor for … in szerkezettel végimegyünk egy objektumon, az örökölni fogja az ős, azaz az Object prototype-ját, ezért azok is elérhetők lesznek az objektumban. Ezekre a tulajdonságra legtöbb esetben nincs szükség, ezért ennek kivédésére a hasOwnProperty tagfüggvényt használhatjuk, amely egy feltételben kiszűri, hogy csak az objektum saját tulajdonságaival dolgozzunk.
var obj = { name: 'Sam', age: 28, sex: 'male' }, prop; // a nem DOM objektumokhoz for (prop in obj) { // csak a saját objektum-tulajdonságokkal foglalkozunk if (obj.hasOwnProperty(prop)) { console.log(obj[prop]); } }
Az IE8 és korábbi verzióiban a DOM objektumok nem öröklik az ős prototípusát, ezért a feltétel mégegy taggal bővül, méghozzá azzal, hogy az objektumban van-e hasOwnProperty tulajdonság; a kódblokk csak akkor fut le, ha mindkét feltétel teljesül.
// a DOM objektumokhoz for (prop in obj) { // csak a saját objektum-tulajdonságokkal foglalkozunk if ('hasOwnProperty' in obj && obj.hasOwnProperty(prop)) { console.log(obj[prop]); } }
Forrás
JavaScript Metaprogramozás
JavaScript függvények
Nicholas C. Zakas – Maintainable Javascript
0 notes
wingwild-blog-blog · 12 years
Text
Javascript - Never Use {For..In} With {.Splice}
雖然Javascript 很好用, 但是今天仍然讓我花了一個下午+晚上的時間Debug了一個奇怪的錯誤。 我為了不讓重複的貼文出現在牆上, 做了一個Hash Table 負責儲存所有貼文的 ID (由貼文者+文章id組成) 但是不知道為什麼, 除了第一次之外, 每次重新呼叫Ajax的時候, 都會少判斷Array, 但是Console出來的數字卻是正確的。 譬如一個 Array 是 45 個, 顯示是 45 個, 但是console出來的清單, 卻有 23 個 undefined... 而之中, 有 25 筆 Facebook 資料, 20 筆 Plurk 資料, 這下讓我摸不著頭緒了...... 問題變得模糊不清, 既不是 Facebook 處理資料出的問題,也不是Plurk ( 因為兩者皆有部分損毀 ) 於是我著手朝各種面向尋找, 改了 fetch 的 function , 改了 show_data 的 function , 就這麼著, 發現了點影子! 我把其中製造 hash table 的程式片段註解, Array 就沒有毀損的情況! 改回去又會有 奇了! 於是我把改成 Json object , 不行。 改成 Array Object, 不行。 改成 Object, 還是不行!! 使出殺手鐧, 網路上找的 Hash Map 給他灌下去, 仍然不行。 問題越來越大, 搞不懂到底是為什麼, 「是因為那塊程式碼造成堆疊錯誤嗎?」 移動 function 位置,不行。 看樣子今晚又要無法解決時, 我狠下心來, 對關鍵點做了break point, 希望蟲蟲因此無所遁形。 事情發生了! 沒有array 毀損...wtf .... 就在這當下的同時, 我回頭一瞄, 發現我並沒有對檢查hash collection的程式片段進行檢查。 曙光似乎已經撒在頭上了, 天使像是在兩側唱起歌來了! 然後, 罪魁禍首出現了... 客官且看這程式碼: for( var key in warehouse ) { if( shipping_data.containsKey( warehouse[key].id ) ) { warehouse.splice( key, 1 ); } } 這沒問題不是嗎? 錯了,splice是刪除array一個元素,破壞counter, 而for...in loop沒有更新他的counter, 所以他會漏掉一堆array element ( 正確來算是一半,因為它錯到一半就沒東西給他錯了 ), 這個初級C++的問題就這樣難倒我了,哀~ foreach真可怕......就這樣又用時間換來一課,有點不值得,大冏 正確版本: for( var key = 0; key
4 notes · View notes
Text
10 Things to watch out for in the Muhurat Trading season
10 Things to watch out for in the Muhurat Trading season
Diwali brings with it hope. Those in India’s stock markets look forward to events that could bring cheer. View our presentation to know 10 things to watch out for in the year.
View On WordPress
0 notes
studyjs · 10 years
Text
6.3 객체와 반복문
배열은 단순 for 반복문과 for in 반복문으로 요소에 쉽게 접근 할 수 있지만 객체는 for 반복문으로 객체의 속성을 살피는 것은 불가능하다. 객체의 속성을 모두 살피기 위해선 for in 반복문을 사용해야 한다.
//변수선언 var product = { name: 'Microsoft Visual Studio 2012', price: '15,000,000원', langualge: 'Korean', supportOS: 'Win 32/64', subscription: true }; // 출력 var output = ''; for (var key in product) { output += '■' + key + ': ' + product[key] + '\n'; } console.log(output);
for in 반복문에 객체를 넣으면 객체의 요소 개수만큼 반복문을 실행한다.
0 notes
studyjs · 10 years
Text
4.5 for in 반복문
자바스크립트는 배열이나 객체를 더욱 쉽게 다룰 수 있게 for in 반복문을 제공한다.
for (var i in array) { }
for in 반복문은 다음과 같은 단순 for 반복문과 같은 기능을 수행한다.
for (var i = 0; i < array.length; i++) { }
for in 반복문의 예제
//변수를 선언 var array = ['포도', '사과', '바나나', '망고']; //반복문 for (var i in array) { alert(array[i]); }
0 notes