在Javascript中从数组中删除多个索引

在Javascript中从数组中删除多个索引,javascript,arrays,splice,Javascript,Arrays,Splice,我正在尝试编写一个函数,它接受3个参数,然后在删除给定索引后返回一个字符串。这是我的密码: var name = {}; function strCut(arg1, arg2, arg3){ if(arg1 === 'Jordi') arg1.splice(0, 1) && arg1.splice(4,1) return arg1 } strCut('Jordi', 0, 4) //我想把“J”和“I”拼接起来 要返回na

我正在尝试编写一个函数,它接受3个参数,然后在删除给定索引后返回一个字符串。这是我的密码:

    var name = {};
    function strCut(arg1, arg2, arg3){
    if(arg1 === 'Jordi')
    arg1.splice(0, 1) && arg1.splice(4,1)
    return arg1
    }
    strCut('Jordi', 0, 4)
//我想把“J”和“I”拼接起来 要返回name=ord的数组,请尝试此函数:

函数strct(arg1、arg2、arg3){
如果(arg1=='Jordi'){
var temp=arg1。拆分(“”);
删除临时文件[arg2]
删除临时文件[arg3]
}
//如果要返回字符串,请返回temp.join(“”)。
返回临时联接(“”)。拆分(“”);
}
console.log(strCut('Jordi',0,4))
  • 我想你指的是
    字符串
    而不是
    数组
    ?如果需要将
    字符串
    转换为
    数组
    ,可以使用
    str.split(“”)
  • 另外,我认为您的函数应该使用
    arg2
    arg3
    而不是常量0和4
  • 您不能使用
    &&
    连接字符串或数组。如果这是您想要的,您应该对字符串和
    .concat
    使用
    +
    运算符。。。(排列运算符)
    用于阵列
  • 问题是,当您删除一个索引时,另一个索引将减少一个,一个简单的解决方案是首先删除较大的索引
  • 以下是您的代码(如果是字符串):
  • 以下是您的代码(如果它是数组):

标题建议使用数组,但代码中未显示数组。请澄清这是针对字符串或数组的?问题是,当您拼接它时,4的索引现在将减少一个。。。。。splice不是字符串上的一种方法。您可以使用slice来代替编写自己的方法。等效项为“Jordi”。切片(1,4)不能用于字符串拼接。您可以通过连接要选择的字符串部分来创建新字符串。
delete
在数组中不会更改它的长度,并且会在返回字符串时将
undefined
保留在孔中。为什么要关心数组长度?@charlietfl是的,但有一点:不使用数组。第二:join会把它清理干净。@epascarello好的……不知道join()会跳洞。绝对不会这样做myself@charlietfl不是真的,但是当你用
'
加入它时,它没有任何区别
var name = {};
function strCut(str, firstIndex, secondIndex){
  var largerIndex = Math.max(firstIndex, secondIndex);
  var smallerIndex = Math.min(firstIndex, secondIndex);
  str = str.slice(0, largerIndex) + str.slice(largerIndex + 1); //Removing the larger index
  str = str.slice(0, smallerIndex) + str.slice(smallerIndex + 1); //Removing the smaller index
  return str;
}
strCut('Jordi', 0, 4);
var name = {};
function strCut(str, firstIndex, secondIndex){
  var largerIndex = Math.max(firstIndex, secondIndex);
  var smallerIndex = Math.min(firstIndex, secondIndex);
  str = str.slice(0, largerIndex).concat(str.slice(largerIndex + 1)); //Removing the larger index
  str = str.slice(0, smallerIndex).concat(str.slice(smallerIndex + 1)); //Removing the smaller index
  return str;
}
strCut('Jordi'.split(''), 0, 4); //The string gets passed as an array this way