![](/img/trans.png)
[英]How transform values (true or false to Yes or No) in Array with objects with RXJS?
[英]Using map, how do I transform a yes and no string in an objects property into a boolean true and false value in javascript
我有一个cat对象数组,我必须使用map函数将“readyForHome”属性从字符串'Yes''No'更改为布尔值true或false。 它将成为函数的一部分,为数组执行各种其他操作。
我对高阶函数很新,我在这里读到的所有内容似乎都不适合我。 有没有人知道如何处理这个问题?
var cats = [ { id: '1', name: 'rupert', readyForHome: 'No', age: 12, personality: ['friendly', 'lazy', 'loving']}, { id: '2', name: 'mrs fluffy', readyForHome: 'Yes', age: 2, personality: ['affectionate', 'playful', 'shy']}, { id: '3', name: 'tabitha', readyForHome: 'Yes', age: 4, personality: ['aggressive', 'independent']}, { id: '4', name: 'lily', readyForHome: 'No', age: 8, personality: ['friendly', 'playful', 'mischievous']}, { id: '5', name: 'stripe', readyForHome: 'Yes', age: 1, personality: ['haughty', 'independent']}, { id: '6', name: 'bob', readyForHome: 'Yes', age: 1, personality: ['aggressive', 'antisocial', 'nervous']}, { id: '7', name: 'jean claude cat damme', readyForHome: 'Yes', age: 11, personality: ['sleepy', 'shy', 'loving']}, { id: '8', name: 'tilly', readyForHome: 'Yes', age: 4, personality: ['playful', 'social', 'attention-seeking']}, { id: '9', name: 'milo', readyForHome: 'No', age: 7, personality: ['mischievous', 'friendly']}, { id: '10', name: 'mr claws', readyForHome: 'Yes', age: 13, personality: ['affectionate', 'shy', 'nervous']}, { id: '11', name: 'robert zimmercat', readyForHome: 'Yes', age: 3, personality: ['folksy', 'prolific', 'neurotic']} ];
var cats = [ { id: '1', name: 'rupert', readyForHome: 'No', age: 12, personality: ['friendly', 'lazy', 'loving']}, { id: '2', name: 'mrs fluffy', readyForHome: 'Yes', age: 2, personality: ['affectionate', 'playful', 'shy']}, { id: '3', name: 'tabitha', readyForHome: 'Yes', age: 4, personality: ['aggressive', 'independent']}, { id: '4', name: 'lily', readyForHome: 'No', age: 8, personality: ['friendly', 'playful', 'mischievous']}, { id: '5', name: 'stripe', readyForHome: 'Yes', age: 1, personality: ['haughty', 'independent']}, { id: '6', name: 'bob', readyForHome: 'Yes', age: 1, personality: ['aggressive', 'antisocial', 'nervous']}, { id: '7', name: 'jean claude cat damme', readyForHome: 'Yes', age: 11, personality: ['sleepy', 'shy', 'loving']}, { id: '8', name: 'tilly', readyForHome: 'Yes', age: 4, personality: ['playful', 'social', 'attention-seeking']}, { id: '9', name: 'milo', readyForHome: 'No', age: 7, personality: ['mischievous', 'friendly']}, { id: '10', name: 'mr claws', readyForHome: 'Yes', age: 13, personality: ['affectionate', 'shy', 'nervous']}, { id: '11', name: 'robert zimmercat', readyForHome: 'Yes', age: 3, personality: ['folksy', 'prolific', 'neurotic']} ].map( cat => { cat.readyForHome = (cat.readyForHome === 'Yes'); // true only if 'Yes' return cat; }); console.log(cats);
你应该使用一个function
,它接受你的cat
对象并相应地改变它的readyForHome
属性,作为map()
方法的callback
。
这就是你需要的:
cats = cats.map(function(cat){
cat.readyForHome.toUpperCase() === "YES" ? cat.readyForHome = true : cat.readyForHome = false;
return cat;
});
var cats = [{ id: '1', name: 'rupert', readyForHome: 'No', age: 12, personality: ['friendly', 'lazy', 'loving'] }, { id: '2', name: 'mrs fluffy', readyForHome: 'Yes', age: 2, personality: ['affectionate', 'playful', 'shy'] }, { id: '3', name: 'tabitha', readyForHome: 'Yes', age: 4, personality: ['aggressive', 'independent'] }, { id: '4', name: 'lily', readyForHome: 'No', age: 8, personality: ['friendly', 'playful', 'mischievous'] }, { id: '5', name: 'stripe', readyForHome: 'Yes', age: 1, personality: ['haughty', 'independent'] }, { id: '6', name: 'bob', readyForHome: 'Yes', age: 1, personality: ['aggressive', 'antisocial', 'nervous'] }, { id: '7', name: 'jean claude cat damme', readyForHome: 'Yes', age: 11, personality: ['sleepy', 'shy', 'loving'] }, { id: '8', name: 'tilly', readyForHome: 'Yes', age: 4, personality: ['playful', 'social', 'attention-seeking'] }, { id: '9', name: 'milo', readyForHome: 'No', age: 7, personality: ['mischievous', 'friendly'] }, { id: '10', name: 'mr claws', readyForHome: 'Yes', age: 13, personality: ['affectionate', 'shy', 'nervous'] }, { id: '11', name: 'robert zimmercat', readyForHome: 'Yes', age: 3, personality: ['folksy', 'prolific', 'neurotic'] } ]; cats = cats.map(function(cat) { cat.readyForHome.toUpperCase() === "YES" ? cat.readyForHome = true : cat.readyForHome = false; return cat; }); console.log(cats);
var catMap = arr.map(function (cat) {
cat.readyForHome = cat.readyForHome === 'Yes' ? true : false;
return cat;
})
这就是我最终的结果。 抱歉没有发布我之前提到过的内容。 我刚开始使用Stack Overflow而且老实说我有点忘记了我发布了这个问题! 谢谢大家抽出时间回答:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.