我有以下数组:
var arr = ["Toyota", "Hyundai", "Honda", "Mazda"];
我想向后切片每个元素,例如:
var arr = ["Toyota", "Hyundai", "Honda", "Mazda"].slice(-2);
所以它会返回:
arr = ["Toyo", "Hyund", "Hon", "Maz"];
有可能吗?或者有没有这样做?
答案 0 :(得分:5)
您无法直接使用slice
,因为它与数组具有不同的含义,并会返回一个数组元素列表。
var arr = ["Toyota", "Hyundai", "Honda", "Mazda"]
arr.slice(0, -2) // returns the elements ["Toyota", "Hyundai"]
为了对每个元素进行切片,您可以使用.map()
(在IE9 +上):
var out = arr.map(function(v) { return v.slice(0, -2) })
// or using underscore.js for wider compatibility
var out = _.map(arr, function(v) { return v.slice(0, -2) })
// or using a more modern arrow function
var out = arr.map(v => v.slice(0, -2))
或者,您可以使用循环:
var i, out = []
for (i = 0; i < arr.length; ++i) {
out.push(arr[i].slice(0, -2))
}
或者,用更现代的语法:
const out = new Array(arr.length)
for (let i = 0; i < arr.length; ++i) {
out[i] = arr[i].slice(0, -2)
}
答案 1 :(得分:1)