2017-07-12 26 views
-3

我想檢查是否有任何特定的鍵在JavaScript數組中有對象的值。檢查是否有任何特定的鍵在對象的JavaScript數組中有值

myArray = [ {file:null}, {file:hello.jpg}, {file:null}] ; 

關鍵file有值,以便返回true否則false。 如何以編程方式檢查此問題?

+1

'obj.key === value''?另外 - 一個'for'循環。 – zerkms

+0

沒有for循環。但可能會使用過濾器。 – kaws

+0

如果我理解正確,可以使用'Array#some()'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some。問題仍然有點模糊 – charlietfl

回答

1

由於null是falsy值,你可以用雙重否定來檢查它是否包含或者是空的(null)。

let myArray = [ {file:null}, {file:'hello.jpg'}, {file:null}]; 
 

 
const check = arr => arr.map(v => !!v.file); 
 

 
console.log(check(myArray));

+0

你能解釋一下這行嗎, const check = arr => arr.map(v => !! v.file); – kaws

+0

@kaws雙重否定。所有值都被改變爲布爾值。如果它有一個值,它返回'true'。如果它有'null',空字符串或'undefined',它將返回'false'。 –

+1

@感謝金德。 – kaws

0

試試這個:

var myArray = [ {file: null}, {file: 'hello.jpg'}, {file: null}]; 
for(var i = 0; i < myArray.length; i++) { 
    if(myArray[i].file != null) { 
     console.log(myArray[i]); 
    } 
} 
0

使用​​來測試數組的任何元素是否與條件匹配。

myArray = [{ 
 
    file: null 
 
}, { 
 
    file: "hello.jpg" 
 
}, { 
 
    file: null 
 
}]; 
 
var result = myArray.some(e => e.file); 
 
console.log(result);

相關問題