【发布时间】:2020-10-17 08:17:28
【问题描述】:
我在网页上有一个输入,其值类似于 1,7,1,4,22,58,58,1,1,4,7
<input type="text" name="hello" id="thankyouforhelping" value="" aria-invalid="false">
我尝试了多种方法来从中删除重复项,但没有一种方法有效。 我试过了:jQuery function to get all unique elements from an array? 和 jQuery function to get all unique elements from an array?
我得到这样的值:
/* Grabbing up to date value to remove duplicates */
$upToDateValue = $('.wdrow-'+$projectrow+' .tasks-created input').val();
该值将始终是逗号分隔的数字,但如何删除所有重复的数字。如果你愿意,我怎么能把它从低到高排序?
这样最终的结果就是1,4,7,22,58
/* Removing duplicates */
$newValue = ???;
PS:我看到很多关于以前提出的问题的答案都是 javascript,但我的代码是 jQuery,我在将这些答案调整到我的 jQuery 代码方面遇到了很多困难。所以我很抱歉这个问题与其他已经可用的问题密切相关。像这样的问题:Get all unique values in a JavaScript array (remove duplicates) 我不知道如何使接受的答案适应我的代码。
感谢大家的帮助!
##Heretic_Monkey 帮了我很多忙,结果如下:
$upToDateValue = $('.wdrow-'+$projectrow+' .tasks-created input').val();
/* Removing duplicates */
var values = $upToDateValue.split(','); values = [...new Set(values)]; values.sort(); $newValue = values.join(',');
/* Setting new value to input */
$('.wdrow-'+$projectrow+' .tasks-created input').val($newValue);
【问题讨论】:
-
jQuery 是用 JavaScript 编写的。它们之间没有区别。你只需要将你的字符串作为一个数组。
$upToDateValue.split(',')将产生一个数组。然后,您将通过您链接到的三个问题中的任何一个的答案来运行它,通过array.join(',')将数组转回字符串。 -
没有魔法,只是编程:)。
var values = $upToDateValue.split(','); values = [...new Set(values)]; $newValue = values.join(','); -
如果您需要帮助了解如何使用唯一的排序值,请edit 说明您将如何使用这些唯一的排序值。
标签: javascript jquery sorting duplicates