JavaScript 获取数组的部分元素

80

如何从旧数组中创建一个包含所有从第n个到第n+k个元素的新数组?

5个回答

123
你需要使用slice方法。
var newArray = oldArray.slice(n, n+k);

17
虽然 W3Schools 在该页面上似乎没有任何错误(这很不寻常),但我认为 MDC(Mozilla 开发者网络)文档更好:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/slice - Quentin

17

我认为slice方法会实现你想要的功能。

arrayObject.slice(start,end)

5

Slice 创建浅层副本,所以它不会创建一个完全相同的副本。例如,请考虑以下内容:

var foo = [[1], [2], [3]];
var bar = foo.slice(1, 3);
console.log(bar); // = [[2], [3]]
bar[0][0] = 4;
console.log(foo); // [[1], [4], [3]]
console.log(bar); // [[4], [3]]

2
原型解决方案:
Array.prototype.take = function (count) {
    return this.slice(0, count);
}

0
假设我们有一个包含六个对象的数组,并且我们想获取前三个对象。
解决方案:
var arr = [{num:1}, {num:2}, {num:3}, {num:4}, {num:5}, {num:6}];
arr.slice(0, 3); //will return first three elements

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