如何在JavaScript中编写按顺序返回参数的函数?
如何实现一个函数,该函数以一个序列作为参数,并返回一个项目列表,而没有任何元素彼此相邻且具有相同值,并保留元素的原始顺序 例如:如何在JavaScript中编写按顺序返回参数的函数?,javascript,function,parameters,arguments,Javascript,Function,Parameters,Arguments,如何实现一个函数,该函数以一个序列作为参数,并返回一个项目列表,而没有任何元素彼此相邻且具有相同值,并保留元素的原始顺序 例如: 1. uniqueInOrder('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B'] 2. uniqueInOrder('ABBCcAD') == ['A', 'B', 'C', 'c', 'A', 'D'] 3. uniqueInOrder([1,2,2,3,3]) == [1,2,3
1. uniqueInOrder('AAAABBBCCDAABBB') == ['A', 'B', 'C', 'D', 'A', 'B']
2. uniqueInOrder('ABBCcAD') == ['A', 'B', 'C', 'c', 'A', 'D']
3. uniqueInOrder([1,2,2,3,3]) == [1,2,3]
允许您接受一系列参数。它将参数序列作为数组提供给函数,然后可以对其进行操作以删除重复项
function unique(...items) {
console.log(items.length)
}
function unique(input) {
items = new Set()
for (let item of input) {
items.add(item)
}
return items
}
如果坚持接受字符串或类似数组的对象作为参数,则可以使用集合跟踪重复项
function unique(...items) {
console.log(items.length)
}
function unique(input) {
items = new Set()
for (let item of input) {
items.add(item)
}
return items
}
这些提示应该能帮助你回答问题。对于完整的解决方案,您可能只需要使用for循环并手动检查:
function unique(input) {
let output = []
for (let i = 0; i < input.length; i++) {
if (input[i] != output[output.length - 1] || i == 0) {
output.push(input[i])
}
}
return output
}
> unique("11223332233")
["1", "2", "3", "2", "3"]
功能唯一(输入){
让输出=[]
for(设i=0;i独特(“11223332233”)
["1", "2", "3", "2", "3"]
您可以从给定的数据中获取数组,如果给定了数组,则获取该数组;如果给定了字符串,则获取字符并通过检查最后一个a
和实际元素b
过滤数组,并返回不相等的元素
const uniqueInOrder=v=>Array.from(v).filter((b,i,{[i-1]:a})=>a!==b);
console.log(uniqueInOrder('AAAABBBCCDAABBB'));//['A','B','C','D','A','B']
console.log(uniqueInOrder('abbcad'));//['A','B','C','C','A','D']
log(唯一顺序([1,2,2,3,3]);//[1,2,3]
.as控制台包装{max height:100%!important;top:0;}
您可以使用.reduce
从数组中
函数唯一顺序(数据){
var test=Array.from(数据)
//检查上一项,如果不是当前项,则插入
返回测试。减少((res,x,index)=>{
if(res[res.length-1]!==测试[索引]){
res.push(x)
}
返回res;
}, [])
}
console.log(uniqueInOrder('AAAABBBCCDAABBB'));//['A','B','C','D','A','B']
console.log(uniqueInOrder('abbcad'));//['A','B','C','C','A','D']
log(唯一顺序([1,2,2,3,3]);//[1,2,3]
请添加您尝试过的内容。欢迎使用堆栈溢出!请拿着(你得到了一枚徽章!)通读一下,尤其是你最好的选择是做你的研究,做相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐意帮忙的。