在Javascript中从数组中删除多个索引
我正在尝试编写一个函数,它接受3个参数,然后在删除给定索引后返回一个字符串。这是我的密码:在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
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
而不是常量0和4arg3
- 您不能使用
连接字符串或数组。如果这是您想要的,您应该对字符串和&&
或.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