0
我不介意这是在测试可能不存在的属性时避免错误的正确方法,但它非常笨重,而且无论如何都不能正确地完成这项工作!如果相关的'name'在数组中,那么返回'num'的更好方法是什么?正确的方法来避免空属性的错误
var myArray = [];
myArray.push ({'name': 'ann', 'num':5});
myArray.push ({'name': 'bob', 'num':6});
var num = (myArray.map(function(s) { return s.name }).indexOf('charles')) ? myArray[myArray.map(function(s) { return s.name }).indexOf('charles')].num : 0;
console.log(num);
您应该检查myArray.map(function(s){return s.name})。indexOf('charles'))!== -1,indexOf返回-1作为真 –
运行映射两次实际上效率低下。 – epascarello
是否有重复的名字?例如,会是第5号和第10号? – Matt