2017-08-08 82 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);