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);
}
})