簡體   English   中英

使用數組作為函數中的參數

[英]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)

如果valkey屬性等於我們要過濾的值,則將val對象推入要返回的事物列表中。

我認為混淆點是val[key]的含義。 []語法既用於索引數組( arr[0]獲取列表中的第一件事),又用於獲取對象的屬性( foo[bar]獲取foo.bar

是的, val應該是一個數組,因為forEach()是一個數組方法。

forEach()方法為數組中的每個元素依次調用提供的函數。

不, push()並不意味着整個數組都將被推入result ,而只是括號()的值。

push()方法將新項目添加到數組的末尾,並返回新的長度。

注意:還請記住使用===代替此處描述的JavaScript中的==

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM