我只是想确认以下两个Javascript语句是否产生相同的结果,就像在我看来一样:
首先:
var element = my_array.splice(0,1)[0];
第二
var element = my_array.shift();
我希望在我自己的代码中用第二个替换第一个,以提高可读性。我可以这样做吗?
答案 0 :(得分:36)
他们会有同样的效果,是的。 splice(0, 1)
将从my_array
中删除第一个元素,并返回包含该元素的新数组。 shift
也会这样做,但返回元素本身,而不是数组。
shift
更具可读性(在我看来),也是significantly faster(至少在Chrome中):
答案 1 :(得分:5)
两行代码都从数组中删除第一个元素,并返回已删除的元素,所有主流浏览器都支持它们。
您应该使用第二个,并且代码确实更具可读性。
答案 2 :(得分:2)
答案 3 :(得分:1)
splice 将作为数组返回,但不会从对象中删除数据而是复制
shift 只从前面给出一个数据并从对象中删除
例如
const object = {1}
object.slice(); // return [{1}]
//object will be : {1}
object.shift(); // return {1}
//object will be : {} as shift remove the front data