我只想确认以下两个 Javascript 语句是否产生相同的结果,在我看来:
第一的:
var element = my_array.splice(0,1)[0];
第二:
var element = my_array.shift();
我想在我自己的代码中用第二个代替第一个,以提高可读性。我可以这样做吗?
我只想确认以下两个 Javascript 语句是否产生相同的结果,在我看来:
第一的:
var element = my_array.splice(0,1)[0];
第二:
var element = my_array.shift();
我想在我自己的代码中用第二个代替第一个,以提高可读性。我可以这样做吗?
它们将具有相同的效果,是的。splice(0, 1)
将从中删除第一个元素my_array
并返回包含该元素的新数组。shift
会做同样的事情,但返回元素本身,而不是数组。
shift
更具可读性(在我看来)并且速度也明显更快(至少在 Chrome 中):
这两行代码都从数组中删除第一个元素,并返回删除的元素,所有主流浏览器都支持它们。
您应该使用第二个,代码确实更具可读性。
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