如何在JavaScript中存储对象完整属性
我想问这个问题可能很愚蠢,但相信我,我对JavaScript还不熟悉,我想解决我的问题。实际上,我有一个object,我正在根据键检索object值,所以这里我想存储完整的object属性(用属性名和it值表示)。当前,当我控制台对象时,它给我的结果如下所示:如何在JavaScript中存储对象完整属性,javascript,ecmascript-6,javascript-objects,Javascript,Ecmascript 6,Javascript Objects,我想问这个问题可能很愚蠢,但相信我,我对JavaScript还不熟悉,我想解决我的问题。实际上,我有一个object,我正在根据键检索object值,所以这里我想存储完整的object属性(用属性名和it值表示)。当前,当我控制台对象时,它给我的结果如下所示: Laundry Room: true Lawn: true Swimming Pool: true Water: true "Laundry Room": true "Lawn": true "Swimming Pool": true
Laundry Room: true
Lawn: true
Swimming Pool: true
Water: true
"Laundry Room": true
"Lawn": true
"Swimming Pool": true
"Water": true
当我尝试使用Object.map
方法进行控制台时,它只给出true
(对象值)。我想在变量中存储完整的对象属性和值,比如洗衣房:true
,然后控制该变量
我的代码
Object.keys(data).map(key => {
if (data[key] === true) console.log(data[key]);
});
我的代码的结果
Object.keys(data).map(key => {
if (data[key] === true) console.log(data[key]);
});
true
如果您的意思是要记录对象中值为true的键列表,可以使用过滤器而不是映射,如下所示:
let trueValues = Object.keys(data).filter(key => data[key] === true);
console.log(trueValues);
如果要记录值仅为
true
的所有键值对,可以尝试此Object.entries(data.map((eachValue)=>{eachValue[1]&&console.log(`${eachValue[0]}):${eachValue[1]})})代码>
输出
const数据={
“洗衣房”:没错,
“草坪”:错,
“游泳池”:没错,
“水”:没错,
“泊车”:2
};
常量特征={};
const newData={};
Object.keys(数据).forEach(key=>{
如果(数据[键]==真){
特征[键]=数据[键];
}
如果(键==“停车”){
特征[“停车位”]=数据[键];
}
else newData[key]=数据[key];
});
newData[“features”]=JSON.stringify(features);
log(newData[“features”])
console.log({[key]:data[key]})代码>请添加所需的输出映射
需要返回值,但此处返回未定义的值。如果您只想进入控制台.log
,似乎需要forEach
。请在这里发布预期结果,并描述您正试图实现的目标。您尝试了吗anything@ponuryKOSKIK它给我结果<代码> [object object ],[object object ] < /Cord>,但是它把属性和值看作字符串“洗衣房:true”,我想看起来像“家具”。:是的,我刚刚更新了我的问题,在那里我提到了更新的代码。这是我的代码,我想在我的代码中存储该数组为什么要使用map。使用forEach,您将在newData[“features”]中按下键,因此join将为您提供一个包含所有键的字符串。感谢您的帮助。最后一个问题是,如何以对象形式发送这些数据,如:“{”家具“:true”,“电视休息室“:true”,“厨房“:true”,“客厅“:true”,“洗衣房“:true”,“煤气“:true”,“水“:true”,“电“:true”,“维修“:true”,“阳台“:true”,“仆人宿舍“:true”,“餐厅“:true”,“停车位“:2}”
我想以对象格式发送数据,如{“熔炉”:真的,“游泳”:真的}
非常感谢您,您是最好的