Javascript 基于布尔对象道具生成字符串

Javascript 基于布尔对象道具生成字符串,javascript,reactjs,Javascript,Reactjs,我有一个像 { cash: true, credit: false, debit: true } 在本例中,需要生成一个字符串“Cash,Debit”您可以使用对象。键您可以执行筛选(): var Obj={ 现金:没错, 信用:错, 借方:正确 }; console.log( 对象键(Obj) .过滤器(功能(键){ 返回Obj[键]; }) );您可以使用Object.entries,过滤掉false,然后映射到每个条目中的第一个元素(第一个字母大写),并加入结果 co

我有一个像

{
  cash: true, 
  credit: false, 
  debit: true
}

在本例中,需要生成一个字符串“Cash,Debit”

您可以使用
对象。键
您可以执行
筛选()

var Obj={
现金:没错,
信用:错,
借方:正确
};
console.log(
对象键(Obj)
.过滤器(功能(键){
返回Obj[键];
})

);
您可以使用
Object.entries
,过滤掉
false
,然后映射到每个条目中的第一个元素(第一个字母大写),并加入结果

const result=Object.entries({cash:true,credit:false,debit:true})
.filter(([[uv])=>v)
.map((v)=>v[0].charAt(0).toUpperCase()+v[0].slice(1))
.join(“,”)

控制台日志(结果)似乎希望值等于true的键列表

例如

使用此功能:

function make_string(x){
   var string = ""
   Object.keys(x).filter(function (key) {
      string += x[key] ? `${key},` : '';
   })
   return string.slice(0, -1)
}
例如:

var payments = {
  cash: true, 
  credit: false, 
  debit: true
}
console.log(make_string(payments))

---------------代码片段在这里--------------
var付款={
现金:没错,
信用:错,
借方:正确
}
document.getElementById(“abc”).innerHTML=生成字符串(付款)
//----从对象生成字符串的函数----//
函数make_字符串(x){
var string=“”
对象.键(x).过滤器(函数(键){
字符串+=x[key]?`${key},`:'';
})
返回字符串.slice(0,-1)
}

这只是其他答案的另一个变体,包括用于正确语法显示的字符串操作,比推入数组并使用
.join(“,”)
更详细。这可能不是我在现实世界中使用的解决方案,但希望它能够说明排序和处理数据的方法

let obj = {
  cash: true, 
  credit: false, 
  debit: true
},

let finalString = '';
const keys = Object.keys(obj);
keys.forEach((key, index) => {
    if (obj[key]) {
      const keyString = `${key.capitalize()}';
      const comma = index !== keys.length -1 ? ', ' : '';
      finalString += (keyString + comma);
    }
})

你应该让你的问题更具解释性,我想你只想在值为真的情况下返回键?嗨,John,欢迎来到S/O看看这里,你的问题一点也不清楚。使用
Object.entries()
检查这一点,这有点高级。您只需使用一个过滤器即可完成此操作,而无需创建单独的数组。他需要一个键数组。但也可以不声明额外的数组,很抱歉,这是我的意思。当然,但这会改变原始对象不,不会。
let obj = {
  cash: true, 
  credit: false, 
  debit: true
},

let finalString = '';
const keys = Object.keys(obj);
keys.forEach((key, index) => {
    if (obj[key]) {
      const keyString = `${key.capitalize()}';
      const comma = index !== keys.length -1 ? ', ' : '';
      finalString += (keyString + comma);
    }
})