![](/img/trans.png)
[英]Why cant I push inside an array and use it in a function argument in javascript?
[英]Use an array as an argument in a function
我對編程有點陌生,並且具有以下功能:
function filterJSON(json, key, value) {
var result = [];
json.forEach(function(val,idx,arr){
if(val[key] == value){
result.push(val)
}
})
我的問題是對第二部分的理解:
json.forEach(function(val,idx,arr){
if(val[key] == value){
result.push(val)
}
})
在這種情況下,我們將val
作為參數,而在if語句中,我們使用術語val[key]
。 那么這意味着val
參數是一個數組嗎? 最后,我們將整個數組推入名為result
的空數組中。
非常感謝!
讓我們分解一下:
json.forEach(function(val,idx,arr){
forEach
具有功能。 第一個參數是要迭代的事物的值之一。 第二個和第三個參數是當前索引和數組本身,如果要在遍歷數組時弄亂數組,則需要它們。
在這種情況下,該函數將一次接收一次存儲在json
對象中的所有事物。
if(val[key] == value){
val
是一個對象。 val[key]
意思是“從val
,獲取名為key
的屬性”。
result.push(val)
如果val
的key
屬性等於我們要過濾的值,則將val
對象推入要返回的事物列表中。
我認為混淆點是val[key]
的含義。 []
語法既用於索引數組( arr[0]
獲取列表中的第一件事),又用於獲取對象的屬性( foo[bar]
獲取foo.bar
)
是的, val
應該是一個數組,因為forEach()
是一個數組方法。
forEach()方法為數組中的每個元素依次調用提供的函數。
不, push()
並不意味着整個數組都將被推入result
,而只是括號()
的值。
push()方法將新項目添加到數組的末尾,並返回新的長度。
注意:還請記住使用===
代替此處描述的JavaScript中的==
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.