underscore.js是否具有jQuery函数$.inArray
的等价物?我试图在对象中找到重复项并返回唯一的值。我在jQuery中完成了这个,但是想使用下划线JS。
var result = [];
$.each(formValuesObj.fields.list, function (i, e) {
if ($.inArray(e, result) == -1)
result.push(e);
});
formValuesObj.fields.list = result;
$.each(formValuesObject, function () {
if (this.fieldSelectId == formValues3.fieldSelectId) {
contains = true;
}
});
答案 0 :(得分:3)
你不需要为这个,简单的ol' javascript让你满意!
result.indexOf('value') == -1
答案 1 :(得分:2)
Underscore在一个函数中执行此操作:
var uniqueValuesArray = _.uniq(duplicatedValuesArray);
uniq _.uniq(数组,[isSorted],[iteratee])别名:唯一
使用===生成数组的无副本版本,以测试对象相等性。特别是仅保留每个值的第一次出现。如果您事先知道数组已排序,则为isSorted传递true将运行更快的算法。如果要根据转换计算唯一项,请传递iteratee函数。
答案 2 :(得分:0)
您可以在filter
中使用indexOf
和underscore.js
。
E.g。
var arr= [];
var result= [1, 2, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 8, 9];
var notDuplicatedOnes = _.filter(result, function(num) {
if (arr.indexOf(num) == -1) {
arr.push(num);
return num;
}
});
// Returns [1, 2, 3, 4, 5, 6, 7, 8, 9]