复制数组并删除字符串? Javascript
Copy array and remove strings? Javascript
我正在尝试复制不带“x”的所有字符串的数组,并将不带那些“x”字符串的新数组归因于下面的 (deCode) 变量。使用 for 循环或 push/pop 或 join/split 方法。谁能指出我正确的方向?谢谢
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
var deCode = [];
如果您需要使用 for 循环,您可以遍历数组并将每个元素推送到新数组。
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
var deCode = [];
for (let i = 0; i < messageL.length; i ++) {
if (messageL[i] !== "x") {
deCode.push(messageL[i]);
}
}
但是,还有更好的方法。 Javascript 有一个 filter method,它可以让你得到一个新数组,其中包含通过测试函数的旧数组中的每个元素。
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
// The .filter function passes every element to the function that you provide. If the function returns true, then that element is copied into a new array. Otherwise, it is not. Note that it doesn't modify the old array
var deCode = messageL.filter(function (letter) {
return letter !== "x"
});
您实际上可以使用 arrow function 进一步缩短它。此代码执行完全相同的操作:
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
var deCode = messageL.filter((element) => element !== "x");
我正在尝试复制不带“x”的所有字符串的数组,并将不带那些“x”字符串的新数组归因于下面的 (deCode) 变量。使用 for 循环或 push/pop 或 join/split 方法。谁能指出我正确的方向?谢谢
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
var deCode = [];
如果您需要使用 for 循环,您可以遍历数组并将每个元素推送到新数组。
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
var deCode = [];
for (let i = 0; i < messageL.length; i ++) {
if (messageL[i] !== "x") {
deCode.push(messageL[i]);
}
}
但是,还有更好的方法。 Javascript 有一个 filter method,它可以让你得到一个新数组,其中包含通过测试函数的旧数组中的每个元素。
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
// The .filter function passes every element to the function that you provide. If the function returns true, then that element is copied into a new array. Otherwise, it is not. Note that it doesn't modify the old array
var deCode = messageL.filter(function (letter) {
return letter !== "x"
});
您实际上可以使用 arrow function 进一步缩短它。此代码执行完全相同的操作:
var messageL = [ 'W', 'x', 'e', 'c', 'x', 'o', 'm', 'x', 'x', 'e', '\'', 'x', 's', ' ', 'h', 'o', 'x', 'm', 'x', 'x', 'e'];
var deCode = messageL.filter((element) => element !== "x");