我目前一个学生学习的Javascript和下面的代码在我的工作上来:!== -1的意义是什么?
var currentInventory = [
{
name: 'Brunello Cucinelli',
shoes: [
{name: 'tasselled black low-top lace-up', price: 1000},
{name: 'tasselled green low-top lace-up', price: 1100},
{name: 'plain beige suede moccasin', price: 950},
{name: 'plain olive suede moccasin', price: 1050}
]
},
{
name: 'Gucci',
shoes: [
{name: 'red leather laced sneakers', price: 800},
{name: 'black leather laced sneakers', price: 900}
]
}
];
function filterBlackShoes(shoeList) {
return shoeList.filter(function(shoe){
return shoe.name.indexOf('black') !== -1;
})
}
function renderBlackShoesForDesigner(designer, shoeList) {
shoeList = filterBlackShoes(shoeList);
return shoeList.map(function(shoe){
return [designer, shoe.name, shoe.price].join(', ')
})
}
function renderFilteredGoodsStringForDesigner(designerObject) {
return renderBlackShoesForDesigner(designerObject.name,
designerObject.shoes).join('\n');
}
function renderInventory(inventory) {
return inventory.map(function(designerObject) {
return renderFilteredGoodsStringForDesigner(designerObject);
}).join('\n');
}
所以我理解的代码做什么,它过滤了黑色的鞋子,并返回信息。我了解代码如何工作的所有方面,除了!== -1所做的。我会去我的老师,但他们目前处于离线状态。有人能解释这对我的意义吗?
这就是一个比较声明 – ZeekHuge
我知道,但它与-1 –
比较的意义是什么它根据[*严格相等比较算法*](http:/ *)测试值不是'-1'/ECMA-国际。org/ecma-262/8.0 /#sec-strict-equality-comparison)(即它必须是数值-1)。如果未找到匹配项,[* indexOf *方法](http://ecma-international.org/ecma-262/8.0/#sec-string.prototype.indexof)将返回-1。 – RobG