Jump to content
  • 0

Будет ли работать такой код?


animegirl
 Share

Question

Тут надо было проверить список переменных на существование, хотела схитрить, вроде бы работает, но не уверена, что без косяков. Если кто хорошо разбирается в логике компиляторов браузерных, оно будет работать как запланировано?

typeof (data.var1 ||data.var2 ||data.var3 ||data.var4 ||data.var5) != 'undefined' ? x : y

Или такое, работать будет?

(key == ('check1' || 'check2') ?fire1() :fire2())
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

('check1' || 'check2') -- это выражение всегда будет возвращать 'check1'

следовательно это равно такой записи:

(key == 'check1' ?fire1() :fire2())

предполагаю что планировалось такое:
 

(key == 'check1' || key == 'check2') ? fire1() : fire2();

аналогично по 

typeof (data.var1 ||data.var2 ||data.var3 ||data.var4 ||data.var5) != 'undefined' ? x : y
(data.var1 ||data.var2 ||data.var3 ||data.var4 ||data.var5)вернет первое существующее, не пустое и не приводящееся к false data.var. Если первые 4 не соответствуют такому условию, то вернет data.var5
Link to comment
Share on other sites

  • 0

 

('check1' || 'check2') -- это выражение всегда будет возвращать 'check1'

следовательно это равно такой записи:

(key == 'check1' ?fire1() :fire2())

предполагаю что планировалось такое:

 

(key == 'check1' || key == 'check2') ? fire1() : fire2();

аналогично по 

typeof (data.var1 ||data.var2 ||data.var3 ||data.var4 ||data.var5) != 'undefined' ? x : y
(data.var1 ||data.var2 ||data.var3 ||data.var4 ||data.var5)вернет первое существующее, не пустое и не приводящееся к false data.var. Если первые 4 не соответствуют такому условию, то вернет data.var5

Спасибо, не вышел видимо мой финт ушами :(

Link to comment
Share on other sites

  • 0

Будет ли работать такой код?

А проверить?

 

Тут надо было проверить список переменных на существование

иди читай http://htmlforum.ru/index.php?showtopic=48155&p=322740 И учись правильно задавать вопросы. Т.к. правильно заданный вопрос - это уже половина ответа :)

Link to comment
Share on other sites

  • 0

Ну а объект это разве не массив?  ))

for( var element in grades){     document.write(grades[element])}

И все равно, если не все части массива нужны, ничего кроме как 

http://jsfiddle.net/Fz6nS/

не приходит сходу

Link to comment
Share on other sites

  • 0

Ну а объект это разве не массив?  ))

for( var element in grades){     document.write(grades[element])}

И все равно, если не все части массива нужны, ничего кроме как 

http://jsfiddle.net/Fz6nS/

не приходит сходу

Раздувание кода, при том, что я третий день занимаюсь его урезанием

Link to comment
Share on other sites

  • 0

Вы бы лучше на классы разбили, а не за каждый байт боролись))

 

я бы сделал так 

http://jsfiddle.net/SP9K7/1/

функция поиска по массиву лишней не будет

 

Либо я не понимаю ваши примеры, либо вы не поняли, что я хотела там сделать.

Мне нужно было проверить много переменных на существование, они могли быть и в разных массивах, и сами быть разными переменными, просто пример такой попался.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy