Skip to content

Commit f47802b

Browse files
committed
1 parent 6508022 commit f47802b

File tree

1 file changed

+17
-23
lines changed
  • app/assets/javascripts

1 file changed

+17
-23
lines changed

app/assets/javascripts/t.js

+17-23
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,12 @@
3030
}
3131

3232
function get_value(vars, key) {
33-
var parts = key.split('.');
34-
while (parts.length) {
35-
if (!(parts[0] in vars)) {
36-
return false;
37-
}
38-
vars = vars[parts.shift()];
39-
}
40-
return vars;
33+
return key
34+
.split('.')
35+
.reduce(
36+
(out, part) => (out instanceof Map ? out.get(part) : out[part]) ?? false,
37+
vars
38+
);
4139
}
4240

4341
function render(fragment, vars) {
@@ -67,22 +65,18 @@
6765

6866
// process array/obj iteration
6967
if (meta == '@') {
70-
// store any previous vars
71-
// reuse existing vars
72-
_ = vars._key;
73-
__ = vars._val;
74-
for (i in val) {
75-
if (val.hasOwnProperty(i)) {
76-
vars._key = i;
77-
vars._val = val[i];
78-
temp += render(inner, vars);
79-
}
80-
}
81-
vars._key = _;
82-
vars._val = __;
83-
return temp;
68+
return Array.from(
69+
!!val?.[Symbol.iterator] ? val.entries() : Object.entries(val),
70+
([_key, _val]) => render(
71+
inner,
72+
{
73+
...vars,
74+
_key,
75+
_val,
76+
}
77+
)
78+
).join('');
8479
}
85-
8680
})
8781
.replace(valregex, function(_, meta, key) {
8882
var val = get_value(vars,key);

0 commit comments

Comments
 (0)