为什么我的拔毛功能不起作用
Why my pluck function not working?
我认为我的map和pull函数是集合正确的,但当我试图调用pull来获取汽车对象的"类型"时,它返回一个空数组。。。。?空数组。。。???
更新:感谢您指出它是对象。。。。。所以我在地图函数中添加了for,但似乎不起作用?有什么问题吗?
function map(collection,iterator){
var result=[];
if(Array.isArray(collection)){
for (var i=0;i<collection.length;i++){
result.push(iterator(collection[i]));
}
}else{
for (var key in collection){
result.push(iterator(collection[key]))};
}
return result;
};
function pluck(collection, key) {
return map(collection, function (value) {
return value[key]
});
}
var car = { type: "Fiat", model: "500", color: "white" };
console.log(pluck(car, function (auto) {
return auto.type;
}));
> the result: []
console.log(pluck(car, function (auto) {
return auto.type;
}));
应该是
console.log(pluck(car, 'type'));
此外,car
需要是一个数组。
var car = [{ type: "Fiat", model: "500", color: "white" }];
您正在通过此
var car={类型:"菲亚特",型号:"500",颜色:"白色"};
而映射函数需要数组。
若要传递对象,请在循环中使用。
Pluck函数只对数组有意义,因为只有数组才能映射。对于您只想读取属性的对象:
var car = { type: "Fiat", model: "500", color: "white" };
console.log( car.type );
function map(collection, filter) {
var result = [];
for (var i = 0; i < collection.length; ++i) {
result.push(filter(collection[i]))
}
return result;
}
function pluck(collection, filter) {
return map(collection, filter);
}
var cars = [{type: "Fiat", model: "500", color: "white"}]
var result = pluck(cars, function(auto) {
return auto.type;
})
document.write(JSON.stringify(result))
因为它是一个对象,而不是数组
相关文章:
- 使用复杂数组时Jquery自动完成功能不起作用
- 切换功能不起作用
- 为什么不是'我的修剪功能不起作用
- Angular UI Select2指令搜索功能不起作用
- AngularJS 路由功能不起作用
- JavaScript更新功能不起作用
- JS表单验证功能不起作用
- 复选框树视图功能不起作用
- Web音频-AudioParam调度功能不起作用
- 复选框单击功能不起作用
- jQuery加载函数后,jQuery UI自动完成功能不起作用
- 按下空格键一次后,Jquery功能不起作用
- jquery ajax调用后,表分类器功能不起作用
- jquery对话框可拖动功能不起作用
- 我的数字检查器功能不起作用,为什么
- 隐藏/显示加载功能不起作用
- .slideToggle-on.click功能不起作用
- 验证功能不起作用
- 在我的项目中,添加、删除和编辑功能不起作用
- Onsubmit功能不起作用