我有一个数组,如下所示,
[
{
"name": "Port 01",
"portsActual": [
"Hong Kong",
"Ningbo, CN",
"Hong Kong" // remove this duplicate
]
}
]
我知道如何处理这种重复,如
[ “一”, “B”, “C”, “一”, “d”]
但不要面对上述重复。 请帮助我如何获得相关的o / p。
答案 0 :(得分:3)
您可以使用app.post('/filehash', function(req, res) {
var filePath = req.body.filePath;
if (!filePath) {
res.json(getErrorMessage('\'filePath\''));
return;
}
fileHash.generateHash(filePath,function(err,hashVal){
logger.info('hashVal---->>>> '+hashVal);
res.send(hashVal);
});
});
var generateHash = function(filePath,callback) {
var algo = 'md5';
var shasum = crypto.createHash(algo);
var response = '';
var s = fs.ReadStream(filePath);
s.on('data', function(d) { shasum.update(d); });
s.on('end', function() {
var d = shasum.digest('hex');
logger.debug('\n====== Creating filehash \'' + d + '\' ======\n');
console.log(d);
response=d;
callback(null,response);
});
};
来迭代数组。然后应用Array#filter
来过滤重复值
Array#forEach
答案 1 :(得分:0)
只需使用一个简单的for循环来检查每个键并单独过滤它们以检查重复项。
function checkNestedThenDelete(obj /*, level1, level2, ... levelN*/) {
var args = Array.prototype.slice.call(arguments, 1);
for (var i = 0; i < args.length; i++) {
if (!obj || !obj.hasOwnProperty(args[i])) {
obj[args[i]]= "";
return true;
}
obj = obj[args[i]];
}
return false;
}
var test = {level1:{level2:{level3:'level3'}} };
checkNestedThenDelete(test, 'level1', 'level2', 'level3'); // true
checkNestedThenDelete(test,'level1', 'level2', 'foo'); // false
答案 2 :(得分:0)
直观的解决方案:
var arr = [1,1,2,3,3,3,3,4,5,5]
var arr2 =[];
for(var i=0; i < (arr.length-1); i++){
if (arr2.indexOf(arr[i]) > -1 || arr[i] != arr[i+1]){
//Do Nothing and move on to the next set
}
else{
arr2.push(arr[i]);
}
}