2017-08-08 76 views
-2

我有有年齡和number.I希望創建一組新的陣列中有{"num":2}(IE)的JSON數組值需要返回[{"age":2,"num":2},{"age":3,"num":2}]取陣列,具有特定值

var array_val='[{"age":1,"num":1},{"age":2,"num":2},{"age":3,"num":2}]'; 
 
console.log(array_val); 
 
function fetchList(array_val) { 
 
    return array_val = {"num":1}; 
 
} 
 
array_val.filter(fetchList) 
 
console.log(array_val);

+0

取'JSON.parse'使用前陣。 –

回答

1

我看到你的代碼2個問題:

  1. 你沒有你的字符串解析成JSON
  2. 你有一個錯誤的過濾器 功能

var array_val='[{"age":1,"num":1},{"age":2,"num":2},{"age":3,"num":2}]'; 
 
console.log(array_val); 
 

 
function fetchList(array_val) { 
 
    return array_val.num === 2; // return only records whose num is 2 
 
} 
 

 
// here you parse string into JSON and apply the filter 
 
var data = JSON.parse(array_val).filter(fetchList); 
 

 
console.log(data);

1

您需要使用filter()

var fetched_object = array_val.filter(function(obj) { 
    return obj.num == 1; 
}); 

注:像@NinaScholz說你需要JSON.parse字符串,所以它是一個數組。

1

您需要解析JSON條紋ng JSON.parse()。並且匹配條件錯誤。 num是對象的內部屬性格式。所以你需要匹配a.num == 2 .Don't忘記添加==

var array_val='[{"age":1,"num":1},{"age":2,"num":2},{"age":3,"num":2}]'; 
 
console.log(array_val); 
 
function fetchList(a) { 
 
    return a.num == 2; 
 
} 
 
var res = JSON.parse(array_val).filter(fetchList) 
 

 
console.log(res);

1

這應該這樣做

var array_val=JSON.parse('[{"age":1,"num":1},{"age":2,"num":2},{"age":3,"num":2}]'); 
 
console.log(array_val); 
 
function fetchList(array_val) { 
 
    return array_val.num == 2; 
 
} 
 
array_val = array_val.filter(fetchList) 
 
console.log(array_val);

0

這將工作代替:

var requiredValue = array_val.filter(function(item){return item.num === 2; });

0

試試這個

var array_val=JSON.parse('[{"age":1,"num":1},{"age":2,"num":2},{"age":3,"num":2}]'); 
var newarr =[] 

for(let i of array_val){ 
if(i.num == 2){ 
newarr.push(i); 
} 

} 

console.log(newarr);