Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 得到给定类别和相应值的笛卡尔积_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 得到给定类别和相应值的笛卡尔积

Javascript 得到给定类别和相应值的笛卡尔积,javascript,reactjs,react-native,Javascript,Reactjs,React Native,让子目录={ “性别”:[“男性”、“名望”], “教育”:[“矩阵运算”、“交互”], “年龄”:[“22”、“23”] } 让类别=[‘性别’、‘教育’、‘年龄’]; var values=DependenciesVALUES(子类别,类别) console.log('result',值) 函数Dependciesvalues(子类别、当前组合){ 让firstCategory=''; 让firstArray=[] 设temp=[]; 让dependciesvalues=[] firstCa

让子目录={
“性别”:[“男性”、“名望”],
“教育”:[“矩阵运算”、“交互”],
“年龄”:[“22”、“23”]
}
让类别=[‘性别’、‘教育’、‘年龄’];
var values=DependenciesVALUES(子类别,类别)
console.log('result',值)
函数Dependciesvalues(子类别、当前组合){
让firstCategory='';
让firstArray=[]
设temp=[];
让dependciesvalues=[]
firstCategory=当前组合[0];
for(让属性在子类别中){
如果(属性===firstCategory){
firstArray=Subcate[属性]
}否则{
for(让第一个数组中的makeDependencies){
for(让内部子类别[属性]){
dependciesvalues.push({
“值”:firstArray[makeDependencies]+“”+Subcate[property][inner]
})
}
}
}
}
返回dependciesvalues;

}
看起来您希望通过3个类别获得,每个类别有2个值

您可以将可能的组合想象为一个三维长方体,由立方体单元组成,其中每个单元(组合)由各自的类别值(坐标)唯一寻址

因此,为了获得所有可能的组合,您需要

  • 将每个维度中的单元格数(值)相乘(框的大小,即组合的数量),以准备适当大小的结果数组
  • 逐单元格扫描长方体,用坐标(组合)填充生成的数组:

以下是该方法的现场演示:

const src={“性别”:[“男性”、“女性”],“教育程度”:[“女性”、“女性”],“年龄”:[“22”、“23”],
笛卡尔=属性=>{
常量周期=对象
.钥匙(属性)
.reduce((附件、键、i)=>{
acc[键]=acc.总计
acc.total*=属性[键].长度
返回acc
},{总计:1}),
结果=数组(句点总数)
.fill()
.map((u,i)=>
Object.assign(
{},
对象
.钥匙(属性)
.map(键=>
({[key]:属性[key][0 | i/句点[key]%属性[key].length]}))
)
)
返回结果
}
console.log(笛卡尔(src))

.as console wrapper{min height:100%;}
请提供一个,其中应包括复制您看到的输出所需的所有数据和代码。好的,让我添加代码,但它会给我错误,我不知道为什么,您的代码片段中有
“fame”
,但所需的输出中有
“Female”
。这是一个打字错误,还是你想要把“名声”翻译成“女性”的代码?计算机是严格的;他们会退回你寄来的东西;在处理这些问题时,精确性很重要。打字错误现在并不重要,但真正重要的是我想要我想要的输出。你能帮我解决这个问题吗?