繁体   English   中英

使用map,如何将objects属性中的yes和no字符串转换为javascript中的布尔值true和false值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM