我有一个数组的字符串:
var arr = [
{str: 'abc'},
{str: 'def'},
{str: 'abc'},
{str: 'ghi'},
{str: 'abc'},
{str: 'def'},
];
我正在寻找一种向对象添加布尔属性的智能方法,无论它是否唯一:unique
str
var arr = [
{str: 'abc', unique: false},
{str: 'def', unique: false},
{str: 'abc', unique: false},
{str: 'ghi', unique: true},
{str: 'abc', unique: false},
{str: 'def', unique: false},
];
我的解决方案包含三个_.each()
循环,看起来很糟糕...首选lodash的解决方案。
您可以where
用来过滤对象。然后,您可以知道您的字符串在对象中是否唯一。
_.each(arr, function(value, key) {
arr[key] = {
str : value.str,
unique : _.where(arr, { str : value.str }).length == 1 ? true : false
};
});
也许是更好的版本map
:
arr = _.map(arr, function(value) {
return {
str : value.str,
unique : _.where(arr, { str : value.str }).length == 1 ? true : false
};
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句