我试图做...JS数组追加
a=['a',2,3];
a+=function(){return 'abc'};
console.log(a[3]);
人机工程学我想a.push()的简写方式。
有没有任何一种操作符可以让我做到这一点?
我试图做...JS数组追加
a=['a',2,3];
a+=function(){return 'abc'};
console.log(a[3]);
人机工程学我想a.push()的简写方式。
有没有任何一种操作符可以让我做到这一点?
否 - 在任何情况下,没有什么不妥:
var a = ['a', 'b', 'c'];
a.push('d');
如果你想要把一个返回值:
a.push((function() { return 'e'; })());
据我所知你不能做操作符重载,所以这是不可能的。
a.push(value)
是简写的方式哈哈。另一种方法是a[a.length] = value
这看起来可能并不短,但如果你用'aReallyReallyLongVariableName'来做这件事,不需要(错误地)输入两次是很方便的。 – rakslice
可以使用.split()
您的字符串转换成数组:
'123'.split('');
然后用.concat()
追加效果:
a = a.concat('123'.split())
当然,你如果你愿意的话,总是可以把它包装在一个函数中。
不,ES5 getter-setters让您拦截任务=
但有没有运营商超载,以允许拦截并重新解释+
或+=
。
如果您知道要添加的内容是单个原始值,则可以伪造它。
var appendable = {
x_: [1, 2],
get x() { return this.x_; },
set x(newx) { this.x_.push(newx.substring(("" + this.x_).length)); }
};
alert(appendable.x);
appendable.x += 3;
alert(appendable.x); // alerts 1,2,3 not 1,23
alert(appendable.x.length);
但实际上,.push
是将内容推送到数组末尾的最佳方法。
“推”太多以至于无法打字? – Pat