我試圖做...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