var names = [name for(name in generateNames(product))];
generateNames
只是返回產品中各種屬性的列名稱數組。這個奇怪的符號在JavaScript中意味着什麼?
但是這個名字的全稱是什麼?
var names = [name for(name in generateNames(product))];
generateNames
只是返回產品中各種屬性的列名稱數組。這個奇怪的符號在JavaScript中意味着什麼?
但是這個名字的全稱是什麼?
這是一個array comprehension。
這是Javascript 1.7的新功能,其工作原理與Python的list comprehensions類似。
所以如果我有這樣的東西:var names = [name for(name in generateNames(product))] ...那麼這樣做的意義是什麼...數組理解? – antonpug
事實上,代碼並沒有真正從數組理解中受益(你可以寫'var names = generateNames(product);')。我懷疑這只是一個例子。如果您想要投影原始數組中的每個項目,或添加條件(例如, var names = [returnSomethingFrom(name)for(name in generateNames(product))if(name!==「」)];'。 –
啊哈!說得通。所以你可以添加條件。實際計算呢?有沒有辦法做到這一點?就像說我有一個數組[1,2,3],並且我想從數組中獲得最大數字,我能否以某種方式將它包括爲條件? – antonpug
這是一個數組理解。它被添加到JavaScript 1.7。僅適用於Firefox AFAIK等Mozilla瀏覽器。
這裏是一個的jsfiddle你可以試試,只在Firefox中:http://jsfiddle.net/hfARW/1/
啊哈!流血的東西,這是在大多數瀏覽器語法錯誤...所以我是一半:) – Quentin
JavaScript 1.6,1.7,1.8。和1.9有許多實驗性的東西,它們甚至不會把它變成ECMAScript 6.它在ECMAScript 5中很多是*,但很多都是Mozilla的遊樂場。真正的理解是在CoffeeScript和Python中。 :) John Resig在[JS的版本](http://ejohn.org/blog/versions-of-javascript/)上有一個小貼子,你可能會感興趣。 –
這對我來說看起來像一個語法錯誤(意外的令牌)。 – Quentin
這就是我的教授給我們的:函數應該可調用爲:var names = [name for(name in generateNames(product))] – antonpug
我就像... wtf? – antonpug