Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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的字符串无限CSS选择器继承问题_Javascript_Html_Css_Arguments - Fatal编程技术网

基于Javascript的字符串无限CSS选择器继承问题

基于Javascript的字符串无限CSS选择器继承问题,javascript,html,css,arguments,Javascript,Html,Css,Arguments,我有一个名为继承的函数,其代码如下所示: function uniqueArray(a) { var seen = {}, out = [], len = a.length, j = 0, i for(i = 0; i < len; i++) { var item = a[i]; if(seen[item] !== 1) { seen[item] = 1; out[j++] = item }} return out } function inher

我有一个名为继承的函数,其代码如下所示:

function uniqueArray(a) {
  var seen = {}, out = [], len = a.length, j = 0, i
  for(i = 0; i < len; i++) {
  var item = a[i];
  if(seen[item] !== 1) {
    seen[item] = 1;
    out[j++] = item
  }}
  return out
}

function inheritance(lang, parent, child) {
 if(lang instanceof Array && parent instanceof Array && child instanceof Array) {
  var finArray=[], a, b, c
  for(a = 0; a < lang.length; ++a) {
  for(b = 0; b < parent.length; ++b) {
    for(c = 0; c < child.length; ++c) { 
      finArray.push(lang[a] + "-" + parent[b] + " > " + lang[a] + "-" + child[c])
 }}}
 return uniqueArray(finArray).join(", ");
}}
我将此作为输出:

lang1-parent1>lang1-child1,lang1-parent1>lang1-child3,lang1-parent1>lang1-child4,lang1-parent2>lang1-child1,lang1-parent2>lang1-child2,lang1-parent2>lang1-child3,lang1-parent3>lang1-child1,lang1-parent3>lang1-child2,lang1-parent3,lang1-parent3>lang1-child4,lang2-parent1>lang2-child2,lang2-parent1>lang2-child3,lang2-parent1>lang2-child4,lang2-parent2>lang2-child2,lang2-parent2>lang2-child3,lang2-parent2>lang2-child4,lang2-parent3>lang2-child1,lang2-parent3>lang2-child2,lang2-parent3>lang2-child3,lang2-parent3>lang2-child4

另一个更自然的例子:

console.log(
 inheritance(
   ["javascript", "python"],
   ["comment", "string"],
   ["number", "text"]
 )
)
这就产生了:

javascript注释>javascript编号,javascript注释>javascript文本,javascript字符串>javascript编号,javascript字符串>javascript文本,python注释>python编号,python注释>python文本,python字符串>python编号,python字符串>python文本

所以,现在是主要问题。我的继承函数仅限于一个孩子。但是我想附加多个child(我说的是childs中的childs)。例如,如果我这样做:

console.log(
 inheritance(
   ["js"],
   ["comment", "string"],
   ["text"],
   ["semiText"],
   ["evenSemiText"]
 )
)
我会得到:

js评论>js文本>js半文本>js半文本,js字符串>js文本>js半文本>js半文本


我说的是无限的继承。我能够获得父-子继承和父-子继承(函数示例为父-子类型)类型继承,但我从未达到无限。我认为可以使用参数进行思考,但不确定(我不太熟悉)。那么,这能做到吗?提前谢谢。

我不知道你为什么要这么做,但我想这就是你想要的。不确定这是否足够有效

函数继承(…args){
const found=新集合();
for(设i=0;i{
child.forEach(c=>{
找到。添加(`${lang}-${p}>${lang}-${c}`)
})
})
}
}
}
}
返回数组.from(find.values()).join(“,”)
}

我不知道你为什么要这么做,但我认为这就是你想要的。不确定这是否足够有效

函数继承(…args){
const found=新集合();
for(设i=0;i{
child.forEach(c=>{
找到。添加(`${lang}-${p}>${lang}-${c}`)
})
})
}
}
}
}
返回数组.from(find.values()).join(“,”)
}

我想,你在寻找递归我想,你在寻找递归
console.log(
 inheritance(
   ["js"],
   ["comment", "string"],
   ["text"],
   ["semiText"],
   ["evenSemiText"]
 )
)