teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/02/14 03:15

投稿

yambejp
yambejp

スコア117946

answer CHANGED
@@ -6,4 +6,29 @@
6
6
  this[i]=o[i];
7
7
  }
8
8
  console.log([a,b,c]);
9
+ ```
10
+
11
+ # 追記
12
+ 上記グローバル変数の場合でしたのでローカル変数には適用されません
13
+ オブジェクト自体外部から受け取るわけではなさそうですし
14
+ キーを特定の文字に制限するならevalを使ってもいいでしょう。
15
+
16
+ ```javascript
17
+ (function(){
18
+ var a=0,b=0,c=0,d=0,e=0;
19
+ var o = {a: 1, b: 2, c: 3,"d=4;e":5};
20
+ for(var i in o){
21
+ eval(i+"="+o[i]);
22
+ }
23
+ /*キーを検証しないと変数が汚染される可能性がある*/
24
+ console.log([a,b,c,d,e]);
25
+
26
+ var a=0,b=0,c=0,d=0,e=0;
27
+ for(var i in o){
28
+ /*日本語変数とか使わないかぎりこんな感じ*/
29
+ if(i.match(/^[a-zA-Z_$][0-9a-zA-Z_$]*$/))eval(i+"="+o[i]);
30
+ }
31
+ console.log([a,b,c,d,e]);
32
+ })();
33
+
9
34
  ```