Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基础知识4 Odin从数组中移除语法问题? const removeFromArray=函数(firstArray,…toRemove){ 让modifiedArray=[…firstArray]; for(设i=0;i循环>而不是 < 循环:(conthof value const)。{let index=firstArray.indexOf(value);if(index!==-1){firstArray.splice(index,1);}(您可以在我的新书中了解for of循环;在我的个人资料中的链接。)如果firstArray是[1,2,3,1,2,3],那么您想做什么可能也值得一问和toRemove包含1、2或3。您当前的方法只会删除第一次出现的代码。我已修复代码并使其正常工作,我将添加到我的主要帖子中,但我仍然不确定原因[I]必须连接到才能运行?我会查看你的书籍!很抱歉theOdinProject很快超过了我的技能,因为我现在不知所措。lol。谢谢我会继续学习。编辑main以添加测试,感谢快速响应!谢谢我非常感谢。如何声明我?大多数时候我只看到它是u在“for”循环中,sed也是如此,并且认为这很好。只是“让i=0”而不是“i=0”?。这是否意味着我可以删除所有附加的[i]而不产生任何后果?再次感谢,T.J.!@JamesRoss-是的,let(或者var,如果您必须支持过时的环境)。您仍然需要[] > > >但对于循环: > >(conToMeTrimeFor){ index = FiSray.Index Of(value);IF(index!== 1){FrasRay.Price(index,1);}(您可以在我的新书中了解< >的循环:我的配置文件中的链接)。如果firstArray是[1,2,3,1,2,3],那么询问您想要做什么可能也是值得的和toRemove包含1、2或3。您当前的方法只会删除第一次出现的代码。我已经修复了代码并使其正常工作,我会将其添加到我的主要帖子中,但我仍然不确定为什么[I]必须附加到toRemove const removeFromArray = function(firstArray,...toRemove) { let modifiedArray = [...firstArray]; for (i = 0; i < firstArray.length; i++) { if (modifiedArray.includes(toRemove[i])) { modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1) } } return modifiedArray; } const removeFromArray = require('./removeFromArray') describe('removeFromArray', function() { it('removes a single value', function() { expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]); }); it('removes multiple values', function() { expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]); }); it('ignores non present values', function() { expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]); }); it('ignores non present values, but still works', function() { expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]); }); it('can remove all values', function() { expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]); }); it('works with strings', function() { expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]); }); it('only removes same type', function() { expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]); }); }); const removeFromArray = function(firstArray,...toRemove) { let modifiedArray = [...firstArray]; for (let i = 0; i < toRemove.length; i++) { if (modifiedArray.includes(toRemove[i])) { modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1) } } return modifiedArray; }; console.log(removeFromArray([3,4,5], 3,5))_Javascript_Arrays_Function_Loops_Syntax - Fatal编程技术网

Javascript 基础知识4 Odin从数组中移除语法问题? const removeFromArray=函数(firstArray,…toRemove){ 让modifiedArray=[…firstArray]; for(设i=0;i循环>而不是 < 循环:(conthof value const)。{let index=firstArray.indexOf(value);if(index!==-1){firstArray.splice(index,1);}(您可以在我的新书中了解for of循环;在我的个人资料中的链接。)如果firstArray是[1,2,3,1,2,3],那么您想做什么可能也值得一问和toRemove包含1、2或3。您当前的方法只会删除第一次出现的代码。我已修复代码并使其正常工作,我将添加到我的主要帖子中,但我仍然不确定原因[I]必须连接到才能运行?我会查看你的书籍!很抱歉theOdinProject很快超过了我的技能,因为我现在不知所措。lol。谢谢我会继续学习。编辑main以添加测试,感谢快速响应!谢谢我非常感谢。如何声明我?大多数时候我只看到它是u在“for”循环中,sed也是如此,并且认为这很好。只是“让i=0”而不是“i=0”?。这是否意味着我可以删除所有附加的[i]而不产生任何后果?再次感谢,T.J.!@JamesRoss-是的,let(或者var,如果您必须支持过时的环境)。您仍然需要[] > > >但对于循环: > >(conToMeTrimeFor){ index = FiSray.Index Of(value);IF(index!== 1){FrasRay.Price(index,1);}(您可以在我的新书中了解< >的循环:我的配置文件中的链接)。如果firstArray是[1,2,3,1,2,3],那么询问您想要做什么可能也是值得的和toRemove包含1、2或3。您当前的方法只会删除第一次出现的代码。我已经修复了代码并使其正常工作,我会将其添加到我的主要帖子中,但我仍然不确定为什么[I]必须附加到toRemove const removeFromArray = function(firstArray,...toRemove) { let modifiedArray = [...firstArray]; for (i = 0; i < firstArray.length; i++) { if (modifiedArray.includes(toRemove[i])) { modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1) } } return modifiedArray; } const removeFromArray = require('./removeFromArray') describe('removeFromArray', function() { it('removes a single value', function() { expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]); }); it('removes multiple values', function() { expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]); }); it('ignores non present values', function() { expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]); }); it('ignores non present values, but still works', function() { expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]); }); it('can remove all values', function() { expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]); }); it('works with strings', function() { expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]); }); it('only removes same type', function() { expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]); }); }); const removeFromArray = function(firstArray,...toRemove) { let modifiedArray = [...firstArray]; for (let i = 0; i < toRemove.length; i++) { if (modifiedArray.includes(toRemove[i])) { modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1) } } return modifiedArray; }; console.log(removeFromArray([3,4,5], 3,5))

Javascript 基础知识4 Odin从数组中移除语法问题? const removeFromArray=函数(firstArray,…toRemove){ 让modifiedArray=[…firstArray]; for(设i=0;i循环>而不是 < 循环:(conthof value const)。{let index=firstArray.indexOf(value);if(index!==-1){firstArray.splice(index,1);}(您可以在我的新书中了解for of循环;在我的个人资料中的链接。)如果firstArray是[1,2,3,1,2,3],那么您想做什么可能也值得一问和toRemove包含1、2或3。您当前的方法只会删除第一次出现的代码。我已修复代码并使其正常工作,我将添加到我的主要帖子中,但我仍然不确定原因[I]必须连接到才能运行?我会查看你的书籍!很抱歉theOdinProject很快超过了我的技能,因为我现在不知所措。lol。谢谢我会继续学习。编辑main以添加测试,感谢快速响应!谢谢我非常感谢。如何声明我?大多数时候我只看到它是u在“for”循环中,sed也是如此,并且认为这很好。只是“让i=0”而不是“i=0”?。这是否意味着我可以删除所有附加的[i]而不产生任何后果?再次感谢,T.J.!@JamesRoss-是的,let(或者var,如果您必须支持过时的环境)。您仍然需要[] > > >但对于循环: > >(conToMeTrimeFor){ index = FiSray.Index Of(value);IF(index!== 1){FrasRay.Price(index,1);}(您可以在我的新书中了解< >的循环:我的配置文件中的链接)。如果firstArray是[1,2,3,1,2,3],那么询问您想要做什么可能也是值得的和toRemove包含1、2或3。您当前的方法只会删除第一次出现的代码。我已经修复了代码并使其正常工作,我会将其添加到我的主要帖子中,但我仍然不确定为什么[I]必须附加到toRemove const removeFromArray = function(firstArray,...toRemove) { let modifiedArray = [...firstArray]; for (i = 0; i < firstArray.length; i++) { if (modifiedArray.includes(toRemove[i])) { modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1) } } return modifiedArray; } const removeFromArray = require('./removeFromArray') describe('removeFromArray', function() { it('removes a single value', function() { expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]); }); it('removes multiple values', function() { expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]); }); it('ignores non present values', function() { expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]); }); it('ignores non present values, but still works', function() { expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]); }); it('can remove all values', function() { expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]); }); it('works with strings', function() { expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]); }); it('only removes same type', function() { expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]); }); }); const removeFromArray = function(firstArray,...toRemove) { let modifiedArray = [...firstArray]; for (let i = 0; i < toRemove.length; i++) { if (modifiedArray.includes(toRemove[i])) { modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1) } } return modifiedArray; }; console.log(removeFromArray([3,4,5], 3,5)),javascript,arrays,function,loops,syntax,Javascript,Arrays,Function,Loops,Syntax,问题1)为什么[…firstArray]周围需要括号 因为没有它们,这是一个语法错误。这种形式的扩展表示法仅在数组文字中有效。(对象具有相同的表示法,但其含义不同。)…不是运算符,而是仅在某些位置(数组文本、对象文本、分解模式、函数参数列表和函数参数列表)定义的语法 问题2)如果[i]用于循环您决定为第一个参数(数组)输入多少次迭代,为什么要将其附加到(toRemove[i]) 不应该,那是不对的。如果数组的长度大于您试图从中删除的内容的数量,因为您要从0移动到 < /COD>循环>而不是 <

问题1)为什么[…firstArray]周围需要括号

因为没有它们,这是一个语法错误。这种形式的扩展表示法仅在数组文字中有效。(对象具有相同的表示法,但其含义不同。)
不是运算符,而是仅在某些位置(数组文本、对象文本、分解模式、函数参数列表和函数参数列表)定义的语法

问题2)如果[i]用于循环您决定为第一个参数(数组)输入多少次迭代,为什么要将其附加到(toRemove[i])

不应该,那是不对的。如果数组的长度大于您试图从中删除的内容的数量,因为您要从
0
移动到
,那么它正好起作用。因此,如果该长度等于或大于
toRemove
中的条目数,您将看到所有
toRemove
的条目(如果
firstArray
较长,则为
undefined
s)。下面是该代码不起作用的示例:

const removeFromArray=函数(firstArray,…toRemove){
让modifiedArray=[…firstArray];
对于(i=0;i
问题1)为什么[…firstArray]周围需要括号

因为没有它们,这是一个语法错误。这种形式的扩展表示法仅在数组文字中有效。(对象具有相同的表示法,但其含义不同。)
不是运算符,而是仅在某些位置(数组文本、对象文本、分解模式、函数参数列表和函数参数列表)定义的语法

问题2)如果[i]用于循环您决定为第一个参数(数组)输入多少次迭代,为什么要将其附加到(toRemove[i])

不应该,那是不对的。如果数组的长度大于您试图从中删除的内容的数量,因为您要从
0
移动到
,那么它正好起作用。因此,如果该长度等于或大于
toRemove
中的条目数,您将看到所有
toRemove
的条目(如果
firstArray
较长,则为
undefined
s)。下面是该代码不起作用的示例:

const removeFromArray=函数(firstArray,…toRemove){
让modifiedArray=[…firstArray];
对于(i=0;ilog(removeFromArray([1,2],3,4,1));//应该是[2],实际上是[1,2]
Editing main以添加测试,感谢您的快速响应!我非常感谢。如何声明I?大多数情况下,我只看到它在'for'循环中被如此使用,并认为这太棒了。只需'let I=0'而不是'I=0'。这是否意味着我可以删除[I]T.J.:“谢谢”,“JaveS罗斯-是的,<代码>让(或<代码> var /代码>如果你必须支持过时的环境)。你仍然需要<代码> [/COD]绕过<代码> i>代码>。但是你可以考虑< <代码> > < /COD>循环>而不是<代码> < <代码>循环:<代码>(conthof value const)。{let index=firstArray.indexOf(value);if(index!==-1){firstArray.splice(index,1);}
(您可以在我的新书中了解
for of
循环;在我的个人资料中的链接。)如果
firstArray
[1,2,3,1,2,3],那么您想做什么可能也值得一问
toRemove
包含
1
2
3
。您当前的方法只会删除第一次出现的代码。我已修复代码并使其正常工作,我将添加到我的主要帖子中,但我仍然不确定原因[I]必须连接到才能运行?我会查看你的书籍!很抱歉theOdinProject很快超过了我的技能,因为我现在不知所措。lol。谢谢我会继续学习。编辑main以添加测试,感谢快速响应!谢谢我非常感谢。如何声明我?大多数时候我只看到它是u在“for”循环中,sed也是如此,并且认为这很好。只是“让i=0”而不是“i=0”?。这是否意味着我可以删除所有附加的[i]而不产生任何后果?再次感谢,T.J.!@JamesRoss-是的,
let
(或者
var
,如果您必须支持过时的环境)。您仍然需要
[]<代码> > <代码> > <代码> >但对于循环:<代码> > <代码> >(conToMeTrimeFor){ index = FiSray.Index Of(value);IF(index!== 1){FrasRay.Price(index,1);}(您可以在我的新书中了解< <代码> >的循环:我的配置文件中的链接)。如果
firstArray
[1,2,3,1,2,3],那么询问您想要做什么可能也是值得的
toRemove
包含
1
2
3
。您当前的方法只会删除第一次出现的代码。我已经修复了代码并使其正常工作,我会将其添加到我的主要帖子中,但我仍然不确定为什么[I]必须附加到toRemove
    const removeFromArray = function(firstArray,...toRemove) {
    let modifiedArray = [...firstArray];
    for (i = 0; i < firstArray.length; i++) {
        if (modifiedArray.includes(toRemove[i])) {
            modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1)
        }    
    }
    return modifiedArray;
}
const removeFromArray = require('./removeFromArray')

describe('removeFromArray', function() {
  it('removes a single value', function() {
    expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]);
  });
  it('removes multiple values', function() {
    expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
  });
  it('ignores non present values', function() {
    expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
  });
  it('ignores non present values, but still works', function() {
    expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]);
  });
  it('can remove all values', function() {
    expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]);
  });
  it('works with strings', function() {
    expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]);
  });
  it('only removes same type', function() {
    expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]);
  });
});
const removeFromArray = function(firstArray,...toRemove) {
    let modifiedArray = [...firstArray];
    for (let i = 0; i < toRemove.length; i++) {
        if (modifiedArray.includes(toRemove[i])) {
            modifiedArray.splice(modifiedArray.indexOf(toRemove[i]), 1)
        }    
    }
    return modifiedArray;
};
console.log(removeFromArray([3,4,5], 3,5))