我和这里的问题差不多。
我有一个包含aa ab aa ac aa ad
等的数组。现在,我想从该数组中选择所有唯一元素。思想,这将是简单的用sort | uniq
或sort -u
因为他们在其他问题中提到,但没有在数组中改变…的代码是:
echo `echo "${ids[@]}" | sort | uniq`
我究竟做错了什么?
有点hacky,但是应该这样做:
echo "${ids[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '
要将排序后的唯一结果保存回数组,请执行数组分配:
sorted_unique_ids=($(echo "${ids[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
如果您的外壳支持herestrings(bash
应该),则可以echo
通过将其更改为以下内容来节省进程:
tr ' ' '\n' <<< "${ids[@]}" | sort -u | tr '\n' ' '
输入:
ids=(aa ab aa ac aa ad)
输出:
aa ab ac ad
说明:
"${ids[@]}"
-使用shell数组的语法,无论是作为一部分echo
还是在此处使用。该@
部分的意思是“数组中的所有元素”tr ' ' '\n'
-将所有空格转换为换行符。因为您的数组被shell视为一行上的元素,并用空格分隔;并且因为sort期望输入在单独的行上。sort -u
-仅排序和保留唯一元素tr '\n' ' '
-将我们先前添加的换行符转换回空格。$(...)
- 命令替换tr ' ' '\n' <<< "${ids[@]}"
是一种更有效的方法:echo "${ids[@]}" | tr ' ' '\n'
问题内容: 如何获得数组中唯一值的列表?我是否总是必须使用第二个数组,或者是否有类似于JavaScript中Java哈希表的东西? 我将仅使用 JavaScript 和 jQuery 。不能使用其他库。 问题答案: 由于我在@Rocket答案的注释中继续进行了讨论,因此我不妨提供一个不使用任何库的示例。这需要两个新的原型函数,并且 为了提高可靠性,可以用MDN的垫片代替,并检查每个元素的值是否等于
我有以下数组 我想从这个数组中得到唯一的值。所以我希望我的结果是这样的 我使用了数组唯一函数,但无法得到结果 如果我有两个索引,这是有效的,但是对于多个索引呢?
我有一个包含会员信息的服务。这里的一个变量是团队字符串。 在我的组件中,我调用服务方法将信息放在变量中,然后在组件中显示它。 我想用服务中团队的唯一列表填充组件中的变量“teams”。这应该考虑到编写(因此我将使用toUpperCase()。 我的服务: 我的组成部分:
我有一张银行账户表: 它在列中有一些JSON: 我使用jsonb\u array\u元素来获取一个用户的帐户列表: 太好了。但我如何让每一行都有一个唯一的id呢?我想将每一行映射到一个hibernate对象,但我很难做到这一点,因为我找不到让每一行都具有唯一id的方法。
问题内容: jQuery.unique允许您获取数组的唯一元素,但是文档说该函数主要供内部使用,并且仅对DOM元素起作用。另一个SO响应说该函数可以在数字上使用,但是此用例不一定是将来的证明,因为在文档中未明确说明。 鉴于此,是否存在“标准” jQuery函数,用于仅访问数组中的唯一值(特别是整数之类的基元)?(显然,我们可以使用函数构造一个循环,但是我们是jQuery的新手,并且想知道是否为此使
问题内容: 我有并想要一些函数,调用的结果是新数组。 问题答案: 看一眼