如何在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]
请添加您尝试过的内容。欢迎使用堆栈溢出!请拿着(你得到了一枚徽章!)通读一下,尤其是你最好的选择是做你的研究,做相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐意帮忙的。