Javascript Lodash在数组值中查找部分唯一性
以下代码从Javascript Lodash在数组值中查找部分唯一性,javascript,arrays,node.js,lodash,Javascript,Arrays,Node.js,Lodash,以下代码从数据数组返回一个唯一值的数组。但是,如果在value1:value2中发现唯一性,我试图实现的是返回true。正如您可以从下面的代码中看到的那样,value1:value2:value3和value1:value2:value4符合此标准。使用lodash技术来生成此功能将是理想的,但是为了理解解决方案,我非常欢迎纯“ol”javascript 注意jQuery和HTML已经被包括进来,以说明我的问题。我想要的javascript将在NodeJS上运行 更新 运行以下代码的预期输出将t
数据
数组返回一个唯一值的数组。但是,如果在value1:value2
中发现唯一性,我试图实现的是返回true。正如您可以从下面的代码中看到的那样,value1:value2:value3
和value1:value2:value4
符合此标准。使用lodash技术来生成此功能将是理想的,但是为了理解解决方案,我非常欢迎纯“ol”javascript
注意jQuery和HTML已经被包括进来,以说明我的问题。我想要的javascript将在NodeJS上运行
更新
运行以下代码的预期输出将true
,因为value1:value2:value3
和value1:value2:value4
之间存在匹配,即两个值中都存在value1:value2
更新
请参见下面的输出示例
更新
其中包括一个我所追求的输出示例。这是所需的功能,但是我希望采用lodash的方法来实现相同的结果
$(文档).ready(函数(){
风险值数据=[
'value1:value2:value3',
'value1:value2:value4',
“value5:value6:value7”,
'value1:value2:value3'
];
var partialValueMatch=函数(数据){
变量查找=uqby.uniqBy(数据,函数(str){
返回str.substring(0,str.lastIndexOf(':'))
});
if(lookup.length
#输出{
背景:#fafafa;
边框:1px实心#d8d8;
填充物:5px10px;
字体系列:monospace;
边界半径:2px;
颜色:红色;
}
您可以使用
你可以用
你能解释得更清楚一点吗,给定一个数据集,理想的输出是什么?@AvraamMavridis请参见UPDATE@JagsSparrow的答案可能会起作用。如果给定一个数据集,你能更好地解释一下理想的输出是什么吗?@AvraamMavridis请参见UPDATE@JagsSparrow的答案可能会奏效。很棒,可以满足我的需要。但是,我有没有办法让它返回真值
?如果输出中需要返回真值
,请与我们共享输出样本。在您的示例中,数据
数组的长度已更改,因此我猜如果小于原始长度,可以对原始输入数组长度和输出长度进行比较。。返回true。是的,您可以通过比较输入和输出数据长度来获得它。我在这里加入了一个提琴,以更好地解释我的示例,使用您描述的方法。非常棒,适合我的需要。但是,我有没有办法让它返回真值
?如果输出中需要返回真值
,请与我们共享输出样本。在您的示例中,数据
数组的长度已更改,因此我猜如果小于原始长度,可以对原始输入数组长度和输出长度进行比较。。返回true。是的,您可以通过比较输入和输出数据长度来获得它。我在这里加入了一个提琴,以更好地解释我的示例,使用您描述的方法。
var data = [
'value1:value2:value3',
'value1:value2:value4',
'value5:value6:value7',
'value1:value2:value3'
];
var output = _.uniqBy(data,function(str){
return str.substring(0,str.lastIndexOf(':'))
});
console.log(output);
console.log('Is duplicates found:',output.length<data.length);
//["value1:value2:value3", "value5:value6:value7"]
//Is duplicates found: true