javascript - 从数组头部取出 n 个元素

标签 javascript arrays for-loop

我正在 Freecodecamp 学习 Javascript。这个挑战是从数组头部砍掉 n 个元素。我的代码可以工作,除非以 1 进行切片。

我已经这样做有一段时间了,不幸的是我没有足够的头脑来寻找我自己的解决方案。我觉得最好知道为什么会出错,而不是寻找替代方法。非常感谢。

function slasher(arr, howMany) {
// it doesn't always pay to be first
 var newArr = [];

for (i=0; i < arr.length; i++) {


if (arr[i] <= howMany) {
  return arr.slice(howMany);
}
else {
return arr;
}
}
}
slasher(["burgers", "fries", "shake"], 1);

expected output
slasher([1, 2, 3], 2) should return [3].
slasher([1, 2, 3], 0) should return [1, 2, 3].
slasher([1, 2, 3], 9) should return [].
slasher([1, 2, 3], 4) should return [].
slasher(["burgers", "fries", "shake"], 1) should return ["fries", "shake"].
slasher([1, 2, "chicken", 3, "potatoes", "cheese", 4], 5) should return 
["cheese", 4].

最佳答案

为了 future 读者的利益,解决此问题的一种可能方法可能如下:

function sliceFrom(sequence, n) {
    let result = [];

    for (let value of sequence)
        if (--n < 0)
            result.push(value);

    if (typeof sequence === 'string')
        return result.join('');

    return result;
}


console.log(sliceFrom('abcdefg', 3));
console.log(sliceFrom([11,22,33,44,55], 2));
console.log(sliceFrom([11,22,33,44,55], 100));

请注意,由于使用 of 循环,此“切片器”适用于任意序列(或更确切地说“可迭代”值),包括那些没有 .length 属性的序列(例如 MapSet 对象)。

从实用的 Angular 来看,有内置方法Array.sliceString.slice当用一个积极的论点调用时,它正是这样做的。然而,在处理“星体”字符时,例如,我们自制的函数优于。表情符号:

function sliceFrom(sequence, n) {
    let result = [];

    for (let value of sequence)
        if (--n < 0)
            result.push(value);

    if (typeof sequence === 'string')
        return result.join('');

    return result;
}

faces = "😂😄😍"

console.log(faces.slice(1))        // not really
console.log(sliceFrom(faces, 1))   // looks fine

关于javascript - 从数组头部取出 n 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012278/

相关文章:

c - 交换函数返回一个不在我的数组中的数字

java - java 上的数组参数行为

r - 查找向量的相似元素并修改其间的所有内容

javascript - chrome.contextMenus 排除类型

javascript - 如何使用键值对获取数组的lastindex

javascript - 如果元素是由指令生成的,ng-click 不起作用

javascript - 将原生 setState 与数组 react

python - 如何按顺序循环/解析表行而不跳到变量的下一个实例?

ios - 在循环内部时将completionHandler放置在哪里?

javascript - 是否可以在悬停时隐藏链接地址?