我们需要检查每个输入键,并检查其他输入键是否有共同的值。如果它们有,我们需要将它们连接在一起,并显示对。如果没有任何共同之处,则显示一个空数组并提供给定的输出。
input :
{
"harsh" : ["cricket", "vollyball"],
"aasim" : ["cricket", "football", "ludo", "COD", "rugb", "vollyball", "Racing"],
"jignesh" : ["cycling", "cricket"],
"jimish" : ["cycling"],
"prince" : ["vollyball","football"],
"raj" : ["ludo","cricket","cycling"]
}
output :
{
"harsh, aasim":["cricket","vollyball"],
"harsh, jignesh":["cricket"],
"harsh, jimish":[],
"harsh, prince":["vollyball"],
"harsh, raj":["cricket"],
"aasim, jignesh": ["cricket"],
"aasim, jimish": [],
"aasim, prince": ["vollyball","football"],
"aasim, raj": ["ludo","cricket"],
"jignesh, jimish" : ["cycling"],
"jignesh, prince" : [],
"jignesh, raj" :["cycling"],
"prince, raj" : []
}发布于 2021-08-07 11:37:07
看看这个:
const findDuplicates = arr => arr.filter((item, index) => arr.indexOf(item) !== index);
const rearangeObject = providedObj => {
const newObj = {};
const keys = Object.keys(providedObj);
for (let i = 0; i < keys.length; i++) {
for (let j = i + 1; j < keys.length; j++) {
let str = keys[i] + ", " + keys[j];
newObj[str] = findDuplicates([...providedObj[keys[i]], ...providedObj[keys[j]]]);
}
}
return newObj;
}
const providedObj = {
"harsh": ["cricket", "vollyball"],
"aasim": ["cricket", "football", "ludo", "COD", "rugb", "vollyball", "Racing"],
"jignesh": ["cycling", "cricket"],
"jimish": ["cycling"],
"prince": ["vollyball", "football"],
"raj": ["ludo", "cricket", "cycling"]
};
console.log(rearangeObject(providedObj));发布于 2021-08-07 11:22:00
尝试一下,这在PHP中很容易实现,但是如果这段代码能为您工作,那也没问题
var name = [
"harsh",
"aasim",
"jignesh",
"jimish",
"prince",
"raj"
]
var array1 = [
["cricket", "vollyball"],
["cricket", "football", "ludo", "COD", "rugb", "vollyball", "Racing"],
["cycling", "cricket"],
["cycling"],
["vollyball", "football"],
["ludo", "cricket", "cycling"]
];
//array1= console.log(array1);
array = [];
for (var i = 0; i < array1.length; i++) {
for (var k = 1; k < array1.length; k++) {
var array5 = array1[i].filter(function(obj) {
return array1[k].indexOf(obj) == -1;
});
if(array5.length!=0){
array[name[i]] = array5
}
}
}
console.log(array);发布于 2021-08-07 15:41:10
const input = {
"harsh" : ["cricket", "vollyball"],
"aasim" : ["cricket", "football", "ludo", "COD", "rugb", "vollyball", "Racing"],
"jignesh" : ["cycling", "cricket"],
"jimish" : ["cycling"],
"prince" : ["vollyball","football"],
"raj" : ["ludo","cricket","cycling"]
};
const inputKeys = Object.keys(input);
const keyCombinations = [];
while (inputKeys.length) {
const k0 = inputKeys.shift();
inputKeys.forEach(k1 => keyCombinations.push([k0, k1]));
}
const output = {};
keyCombinations.forEach(k => output[k.join(', ')] = input[k[0]].filter(k0 => input[k[1]].includes(k0)));
console.log(output);https://stackoverflow.com/questions/68691184
复制相似问题