其他参考手册
CSSStyleDeclaration
JS 类型转换
JavaScript Array slice() 方法
shift()
some()
JavaScript Array 参考手册
定义和用法
slice() 方法以新的数组对象,返回数组中被选中的元素。
slice() 方法选择从给定的 start 参数开始的元素,并在给定的 end 参数处结束,但不包括。
注释:slice() 方法不会改变原始数组。
实例
例子 1
从数组中选择元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
亲自试一试
例子 2
使用负值选择元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3, -1);
亲自试一试
语法
array.slice(start, end)
参数值
参数
描述
start
可选。整数,指定从哪里开始选择(第一个元素的索引为 0)。
使用负数从数组的末尾进行选择。如果省略,则类似于 "0"。
end
可选。整数,指定结束选择的位置。
如果省略,将选择从开始位置到数组末尾的所有元素。使用负数从数组末尾进行选择。
技术细节
返回值:
新的数组,包含选定的元素。
JavaScript 版本:
ECMAScript 1
浏览器支持
所有浏览器都完全支持 slice() 方法:
Chrome
IE
Edge
Firefox
Safari
Opera
Chrome
IE
Edge
Firefox
Safari
Opera
支持
支持
支持
支持
支持
支持
相关页面
教程:JavaScript 数组
教程:JavaScript 数组 Const
教程:JavaScript 数组方法
教程:JavaScript 排序数组
教程:JavaScript 数组迭代
shift()
some()
JavaScript Array 参考手册
JavaScript 和 HTML DOM 参考手册
JavaScript 实例
JavaScript 测验
JavaScript 教程
W3School 简体中文版提供的内容仅用于培训和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。版权所有,保留一切权利。
关于 W3School
帮助 W3School
使用条款
隐私条款
技术支持:赢科
蒙ICP备06004630号
Array.prototype.slice() - JavaScript | MDN
y.prototype.slice() - JavaScript | MDNSkip to main contentSkip to searchSkip to select languageMDN Web DocsOpen main menuReferencesReferencesOverview / Web TechnologyWeb technology reference for developersHTMLStructure of content on the webCSSCode used to describe document styleJavaScriptGeneral-purpose scripting languageHTTPProtocol for transmitting web resourcesWeb APIsInterfaces for building web applicationsWeb ExtensionsDeveloping extensions for web browsersWeb TechnologyWeb technology reference for developersGuidesGuidesOverview / MDN Learning AreaLearn web developmentMDN Learning AreaLearn web developmentHTMLLearn to structure web content with HTMLCSSLearn to style content using CSSJavaScriptLearn to run scripts in the browserAccessibilityLearn to make the web accessible to allPlusPlusOverviewA customized MDN experienceAI Help (beta)Get real-time assistance and supportUpdatesAll browser compatibility updates at a glanceDocumentationLearn how to use MDN PlusFAQFrequently asked questions about MDN PlusCurriculumNewBlogPlayAI Help BetaSearch MDNClear search inputSearchThemeLog inSign up for freeWeb 开发技术JavaScriptJavaScript 参考JavaScript 标准内置对象ArrayArray.prototype.slice()Article Actions中文 (简体)此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。Filter sidebarClear filter inputIn this article尝试一下语法参数描述示例规范浏览器兼容性参见标准内置对象Array构造函数Array() constructor属性Array[@@species]Array.prototype[@@unscopables]Array: length方法Array.prototype[@@iterator]()Array.prototype.at()Array.prototype.concat()Array.prototype.copyWithin()Array.prototype.entries()Array.prototype.every()Array.prototype.fill()Array.prototype.filter()Array.prototype.find()Array.prototype.findIndex()Array.prototype.findLast()Array.prototype.findLastIndex()Array.prototype.flat()Array.prototype.flatMap()Array.prototype.forEach()Array.from()Array.fromAsync()Array.prototype.includes()Array.prototype.indexOf()Array.isArray()Array.prototype.join()Array.prototype.keys()Array.prototype.lastIndexOf()Array.prototype.map()Array.of()Array.prototype.pop()Array.prototype.push()Array.prototype.reduce()Array.prototype.reduceRight()Array.prototype.reverse()Array.prototype.shift()Array.prototype.slice()Array.prototype.some()Array.prototype.sort()Array.prototype.splice()Array.prototype.toLocaleString()Array.prototype.toReversed()Array.prototype.toSorted()Array.prototype.toSpliced()Array.prototype.toString()Array.prototype.unshift()Array.prototype.values()Array.prototype.with()继承Function构造函数Function() constructor属性Function.prototype.arguments非标准
已弃用
Function.prototype.caller
非标准
已弃用
Function: displayName
非标准
Function: lengthFunction: nameFunction: prototype方法Function.prototype[@@hasInstance]()Function.prototype.apply()Function.prototype.bind()Function.prototype.call()Function.prototype.toString()Object属性Object.prototype.constructorObject.prototype.__proto__
已弃用
方法Object.prototype.__defineGetter__()
已弃用
Object.prototype.__defineSetter__()
已弃用
Object.prototype.__lookupGetter__()
已弃用
Object.prototype.__lookupSetter__()
已弃用
Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()In this article尝试一下语法参数描述示例规范浏览器兼容性参见Array.prototype.slice()slice() 方法返回一个新的数组对象,这一对象是一个由 start 和 end 决定的原数组的浅拷贝(包括 start,不包括 end),其中 start 和 end 代表了数组元素的索引。原始数组不会被改变。尝试一下语法jsslice()
slice(start)
slice(start, end)
参数
start 可选
提取起始处的索引(从 0 开始),会转换为整数。
如果索引是负数,则从数组末尾开始计算——如果 start < 0,则使用 start + array.length。
如果 start < -array.length 或者省略了 start,则使用 0。
如果 start >= array.length,则不提取任何元素。
end 可选
提取终止处的索引(从 0 开始),会转换为整数。slice() 会提取到但不包括 end 的位置。
如果索引是负数,则从数组末尾开始计算——如果 end < 0,则使用 end + array.length。
如果 end < -array.length,则使用 0。
如果 end >= array.length 或者省略了 end,则使用 array.length,提取所有元素直到末尾。
如果 end 在规范化后小于或等于 start,则不提取任何元素。
返回值一个含有被提取元素的新数组。描述slice() 方法是一个复制方法。它不会改变 this,而是返回一个浅拷贝,其中包含了原始数组的一部分相同的元素。
slice() 方法会保留空槽。如果被切片的部分是稀疏的,则返回的数组也是稀疏的。
slice() 方法是通用的。它只要求 this 上有 length 属性和整数键属性。示例返回现有数组的一部分jsconst fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
const citrus = fruits.slice(1, 3);
// fruits 包含 ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus 包含 ['Orange','Lemon']
使用 slice在下例中,slice 从 myCar 创建了一个新数组 newCar。两个数组都包含了一个 myHonda 对象的引用。当 myHonda 的 color 属性改变为 purple,则两个数组中的对应元素都会随之改变。
js// 使用 slice 方法从 myCar 创建一个 newCar。
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
const myCar = [myHonda, 2, "cherry condition", "purchased 1997"];
const newCar = myCar.slice(0, 2);
console.log("myCar =", myCar);
console.log("newCar =", newCar);
console.log("myCar[0].color =", myCar[0].color);
console.log("newCar[0].color =", newCar[0].color);
// 改变 myHonda 对象的 color。
myHonda.color = "purple";
console.log("The new color of my Honda is", myHonda.color);
console.log("myCar[0].color =", myCar[0].color);
console.log("newCar[0].color =", newCar[0].color);
上述代码输出:
jsmyCar = [
{ color: 'red', wheels: 4, engine: { cylinders: 4, size: 2.2 } },
2,
'cherry condition',
'purchased 1997'
]
newCar = [ { color: 'red', wheels: 4, engine: { cylinders: 4, size: 2.2 } }, 2 ]
myCar[0].color = red
newCar[0].color = red
The new color of my Honda is purple
myCar[0].color = purple
newCar[0].color = purple
在类数组对象上调用 slice()slice() 方法会读取 this 对象的 length 属性,然后从 start 到 end 读取整数键属性,并将它们定义在一个新创建的数组中。
jsconst arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
};
console.log(Array.prototype.slice.call(arrayLike, 1, 3));
// [ 3, 4 ]
使用 slice() 把类数组对象转化为数组slice() 方法经常与 bind() 和 call() 一起使用,用于创建一个实用方法,将类数组对象转换为数组。
js// 调用 slice() 方法时,会将 this 对象作为第一个参数传入
const slice = Function.prototype.call.bind(Array.prototype.slice);
function list() {
return slice(arguments);
}
const list1 = list(1, 2, 3); // [1, 2, 3]
在稀疏数组上使用 slice()如果源数组是稀疏数组,slice() 方法返回的数组也会是稀疏数组。
jsconsole.log([1, 2, , 4, 5].slice(1, 4)); // [2, empty, 4]
规范SpecificationECMAScript Language Specification # sec-array.prototype.slice浏览器兼容性BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.参见
core-js 中 Array.prototype.slice 的 polyfill
索引集合类
Array
Array.prototype.pop()
Array.prototype.shift()
Array.prototype.concat()
Array.prototype.splice()
TypedArray.prototype.slice()
String.prototype.slice()
Help improve MDNWas this page helpful to you?YesNoLearn how to contribute.This page was last modified on 2023年5月10日 by MDN contributors.View this page on GitHub• Report a problem with this contentMDN logoYour blueprint for a better internet.MDN on MastodonMDN on X (formerly Twitter)MDN on GitHubMDN Blog RSS FeedMDNAboutBlogCareersAdvertise with usSupportProduct helpReport an issueOur communitiesMDN CommunityMDN ForumMDN ChatDevelopersWeb TechnologiesLearn Web DevelopmentMDN PlusHacks BlogMozilla logoWebsite Privacy NoticeCookiesLegalCommunity Participation GuidelinesVisit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.Portions of this content are ©1998–2024 by individual mozilla.org contributors. Content available under a Creative Commons licen
JavaScript Array slice() 方法 | 菜鸟教程
JavaScript Array slice() 方法 | 菜鸟教程
菜鸟教程 -- 学的不仅是技术,更是梦想!
首页
HTML
CSS
JavaScript
Vue
Bootstrap
NodeJS
Python3
Python2
Java
C
C++
C#
Go
SQL
Linux
jQuery
本地书签
首页
HTML
CSS
JS
本地书签
Search
Python3 教程
Python2 教程
Vue3 教程
vue2 教程
Bootstrap3 教程
Bootstrap4 教程
Bootstrap5 教程
Bootstrap2 教程
JavaScript 参考手册
概览
JavaScript 对象
JavaScript Array 对象
JavaScript Boolean 对象
JavaScript Date 对象
JavaScript Math 对象
JavaScript Number 对象
JavaScript String 对象
JavaScript RegExp 对象
JavaScript 全局属性/函数
JavaScript 运算符
JavaScript Error
Browser 对象
Window 对象
Navigator 对象
Screen 对象
History 对象
Location 对象
存储对象
DOM 对象
HTML DOM Document 对象
HTML DOM 元素对象
HTML DOM 属性对象
HTML DOM 事件对象
HTML DOM Console 对象
CSSStyleDeclaration 对象
DOM HTMLCollection
HTML 对象