我想确认以下两个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