【发布时间】:2018-04-24 07:06:40
【问题描述】:
所以我还在学习数组和对象,有点卡住了。 我做了一个对象数组的例子:
var something = {candy:[{name:"snickers", price:2},
{name:"bounty", price:3},
{name:"mars", price:4}]};
Object.keys(something.candy).filter(function(obj){
return console.log(something.candy[obj].name);
})
1.问题 - 为什么我写的时候它不起作用。:
var candy1 = Object.keys(something.candy);
candy1.filter(function(obj){
return console.log(obj.name);
});
是不是和上面的代码意思差不多?
2.问题为什么 slice 有效而 splice 无效???
Object.keys(something.candy).filter(function(obj){
return console.log(something.candy[obj].name.slice(0,3));
})
Object.keys(something.candy).filter(function(obj){
return a(something.candy[obj].name.splice(1,3));
})
【问题讨论】:
-
something.candy已经是一个数组。不要在上面使用Object.keys,直接使用过滤器即可:something.candy.filter( function(obj) { obj.name; } )。 -
slice工作,因为有函数String.prototype.slice和splice不工作,因为没有函数String.prototype.splice。因为name是一个字符串。只有数组有splice。 -
我现在明白了,非常感谢!!!! @ibrahimmahrir
标签: javascript arrays object splice