有可能创建一个可以解决这个问题的函数magic():
[{a:1}, {b:2}, magic(), {e:5}]
Run Code Online (Sandbox Code Playgroud)
成:
[{a:1}, {b:2}, {c:3}, {d:4}, {e:5}]
Run Code Online (Sandbox Code Playgroud)
没有那种精确的语法,没有.您可以在ES2015中获得非常接近,但不完全相同(在ES5及更早版本中,您无法真正接近).
在ES2015("ES6")及更高版本中,您可以magic返回任何可迭代的(如数组),并将其与扩展表示法一起使用:
let a = [{a:1}, {b:2}, ...magic(), {e:5}];
// Spread notation ----^^^
Run Code Online (Sandbox Code Playgroud)
例:
// REQUIRES ES2015+ SUPPORT
function magic() {
return [{c: 3}, {d: 4}];
}
let array = [{a:1}, {b:2}, ...magic(), {e:5}];
console.log(array);Run Code Online (Sandbox Code Playgroud)
在ES5和更早版本中,您可以magic返回一个数组并使用concat:
var array = [{a:1}, {b:2}].concat(magic()).concat([{e:5}]);
Run Code Online (Sandbox Code Playgroud)
例:
function magic() {
return [{c: 3}, {d: 4}];
}
var array = [{a:1}, {b:2}].concat(magic()).concat([{e:5}]);
console.log(array);Run Code Online (Sandbox Code Playgroud)
这不是超高效,因为它创建并丢弃了几个临时阵列,但99.99%的时间,你不在乎.