Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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 - Fatal编程技术网

从javascript对象获取字符串

从javascript对象获取字符串,javascript,Javascript,我有一个javascript对象 { A: 1, B: 2, C: 2, D: 1, E: 1, F: 4, G: 6, H: 2 }, 我想根据哪个键的值最高来获取一个四个字母的字符串,但该字符串只能由以下16个组合按照它们在对象中出现的顺序生成: A or B C or D E or F G or H 所以有16种可能的组合。上面的示例将导致字符串“BCFG” 有人有什么想法吗?你可以 获取对象的条目 配对两个条目 映射光

我有一个javascript对象

{
    A: 1,
    B: 2,
    C: 2,
    D: 1,
    E: 1,
    F: 4,
    G: 6,
    H: 2
},
我想根据哪个键的值最高来获取一个四个字母的字符串,但该字符串只能由以下16个组合按照它们在对象中出现的顺序生成:

A or B
C or D
E or F
G or H
所以有16种可能的组合。上面的示例将导致字符串“BCFG”

有人有什么想法吗?

你可以

  • 获取对象的条目
  • 配对两个条目
  • 映射光栅值的字母
  • 将数组连接到单个字符串
var object={A:1,B:2,C:2,D:1,E:1,F:4,G:6,H:2},
结果=对象
.条目(对象)
.减少((r,a,i)=>{
如果(i%2){
r[r.length-1]。推送(a);
}否则{
r、 推动([a]);
}
返回r;
}, [])
.map(([a,b])=>a[1]>b[1]?a[0]:b[0])
.加入(“”);
控制台日志(结果)
var vs={A:1,B:2,C:2,D:1,E:1,F:4,G:6,H:2}
var字母=[];
var数=[];
var短语=”;
for(在vs中输入var){
字母。按(键);
推送(vs[键]);
}
对于(变量i=1;i数字[i]){
短语=短语+字母[i-1];
}否则{
短语=短语+字母[i];
}

}
我比较对象中的每一对,然后从较高的一对构造结果字符串

const obj={A:1,B:2,C:2,D:1,E:1,F:4,G:6,H:2}/“BCFG”
让getHighest=(obj)=>{
让结果=”;
//将对象转换为数组
obj=对象.键(obj).映射(函数(键){
返回[key,obj[key]];
});
//通过i+2迭代数组(在每个循环中跳过1)
对于(设i=0,len=obj.length;iobj[i+1][1]){
//将字母添加到结果中
结果+=obj[i][0];
}
//第二个大于或等于
否则{
//将字母添加到结果中
结果+=obj[i+1][0];
}
}
返回结果;
}
console.log(getHighest(obj))将你的家庭作业发布为
var values = {
    A: 1,
    B: 2,
    C: 2,
    D: 1,
    E: 1,
    F: 4,
    G: 6,
    H: 2
};

var result = Object.keys(values).reduce(function(result, value, index, array) {
  if (index % 2 === 0) {
    result.push(array[values[value] > values[array[index + 1]] ? index : index + 1])
  }
  return result;
}, []).join('');