标题可能有点混乱。但我认为很清楚:
var a = ["A1", "B13", "C123"];
我想忽略元素中的第一个值并获取其余元素。所以我的新数组应该是这样的:
var b = ["1", "13", "123"];
标题可能有点混乱。但我认为很清楚:
var a = ["A1", "B13", "C123"];
我想忽略元素中的第一个值并获取其余元素。所以我的新数组应该是这样的:
var b = ["1", "13", "123"];
用于.map()
创建原始修改值的新数组。
var b = a.map(function(item) {
return item.slice(1);
});
这会迭代原始数组,将数组中的每个项目作为第一个参数传递给函数,并将函数的返回值设置为新数组的值。
对于 IE8 及更低版本,您需要实施补丁。一个可从 MDN获得。
使用.map
,您可以返回一个新数组,该数组是通过将现有数组中的每个元素通过函数传递而生成的:
var b = a.map(function(v) {
return v.substr(1);
});
请注意,这.map
是旧版浏览器中不存在的 ES5 函数。上面的链接中提供了垫片。
var b = [];
for (var i = 0; i < a.length; ++i)
{
b[i] = a[i].substring(1);
}
forEach
方式_
var a = ["A1", "B13", "C123"],
b = [];
a.forEach(function (element) {
b.push(element.slice(1));
});
console.log(b);
map
方式_
var b = a.map(function (element) {
return element.slice(1);
});
for
方式_
var l = a.length;
var b = [];
for (var i = 0; i < l; i += 1) {
b.push(a[i].slice(1));
}
终极速度仍然是 for 循环(也许爷爷除外)
因此,当我最终将上述所有内容都包括在内时,将他们的祖父全部排除在外是不对的。
while
方式_
var b = [];
var i = 0;
var l = a.length;
while (i < l) {
b.push(a[i].slice(1));
i += 1;
}
我还包括了一个 RegExp 和 jquery 版本,有点傻笑。
(lodash也有它自己的地图功能)
你可以看到jsperf