Javascript的push()简写?

19

当向数组中添加值时,JavaScript(甚至 CoffeeScript)是否有类似于 PHP 的 $array[] = 'added to array'; 的简写方法来使用 .push()


Array.prototype.a = Array.prototype.push; var arr = []; arr.a('something'); 看,很短 :) - Ja͢ck
4
@Jack - 别让我在真正的代码中抓到你用那个! - Joseph Silber
1
如果计算空格的话,.push()[] = 多了 两个 字符。人们真的 那么 懒吗? - NullUserException
@NullUserException 绝对没有什么问题是与懒惰的程序员有关的,相反的...我很乐意从常见的方法调用中削减两个字符,但我绝不会选择用 PHP 的丑陋的 [] = 替换像 push(...) 这样易读的东西 :p - user229044
1
@meagar 但是这并不给代码增加效率或清晰度。这就像争论我们应该总是使用一个字符的变量因为它们更短一样。可以说这样做更糟糕,因为我想不出任何其他支持这种结构的语言; 它们都需要 .push.append 或类似的东西。 - NullUserException
显示剩余4条评论
3个回答

20

不行。

你只能使用.push()

Coffeescript的使用只会让你方便地省略括号。


2
我并不总是使用.push()来添加数据,但当我这样做时,我更喜欢使用.a() =D +1 - Ja͢ck
1
@Jack - 希望你的地址没有在互联网上公开!:P - Joseph Silber
@Jack,你是否使用后处理器在代码离开你的电脑之前将.a()的实例替换为.push()?如果你没有这样做 - 你应该这样做! - Billy Moon
@BillyMoon 后处理器太费力了;改变原型更容易。 - Ja͢ck
1
@Jack,你觉得直接写.a)然后使用预处理器将其替换为.a()怎么样?这样你就不需要输入那么多字符了。 - Billy Moon
@Jack 五年后,为什么不使用 CoffeeScript 并只是使用 .a? - sijpkes

10

你可以使用 arr[arr.length] = "new value",但没有其他快捷方式。


你真的认为arr[arr.length] = "new value"是一种捷径吗? - Joseph Silber
3
我刚刚添加了一个除了“push”方法之外的解决方案。我不应该称其为捷径。 - L105
2
这是一个很好的解决方案,有时在不想有太多嵌套层的情况下更容易阅读。例如:arr[arr.length] = something.find(function(s) {...}); 可能比 arr.push(something.find(function(s){...})) 更容易阅读。个人偏好。 - Jake
@Jake 我建议使用 let found = something.find((s)=>{...}); arr.push(found); 更易读。 - sijpkes
1
就算价值不高,但在某些情况下'arr[i] = "new value"'.length // 20可能是一种捷径(尽管只是轻微的)。'arr.push("new value")'.length // 21。 - admcfajn

2

这不完全是一个 array.push(),但在某些情况下可能会派上用场,而且有点类似。

const cars = ["Saab", "Volvo", "BMW"];
var myNewArray =  [...cars, "Honda"];

这将创建一个["Saab", "Volvo", "BMW", "Honda"]数组,并将其赋值给myNewArray变量。

这正是我在寻找的。与 array.push() 相比,有什么缺点吗? - close
没有我所知道的。 :) 这将为您提供更多的见解。希望这可以帮助您。:). https://dev.to/sagar/three-dots---in-javascript-26ci - Dula

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接