我不确定这是否可行,因为我还没有找到任何相关信息。 我正在浏览一个JSON对象..
{"name": "zack",
"message": "hello",
"time": "US 15:00:00"},
{"name": "zack",
"message": "hello",
"time": "US 00:00:00"}
有没有办法可以选择仅包含“15:00:00”部分的时间属性?
感谢您的帮助
答案 0 :(得分:1)
据我所知,如果你解析你的JSON,你就有了一个对象数组。因此,您可以使用filter函数并过滤掉那些与您在过滤函数中传递的条件不匹配的元素:
var parsedJson = [{"name": "zack",
"message": "hello",
"time": "US 15:00:00"},{"name": "zack",
"message": "hello",
"time": "US 00:00:00"}];
var result = parsedJson.filter(item=>item.time === "US 15:00:00");
console.log(result);

答案 1 :(得分:1)
您可以使用数组#过滤功能。它将返回一个具有匹配元素的新数组。如果新数组的长度为0,则表示未找到匹配项
var myJson = [{
"name": "zack",
"message": "hello",
"time": "US 15:00:00"
},
{
"name": "zack",
"message": "hello",
"time": "US 00:00:00"
}
]
var m = myJson.filter(function(item) {
return item.time === "US 15:00:00"
})
console.log(m)

findIndex也可用于查找是否包含值。如果值为-1,则表示json数组不包含符合条件的任何对象
var myJson = [{
"name": "zack",
"message": "hello",
"time": "US 15:00:00"
},
{
"name": "zack",
"message": "hello",
"time": "US 00:00:00"
}
]
var m = myJson.findIndex(function(item) {
return item.time === "US 15:00:00"
});
console.log(m)

答案 2 :(得分:1)
var arr = [{
"name": "zack",
"message": "hello",
"time": "US 15:00:00"
}, {
"name": "zack",
"message": "hello",
"time": "US 00:00:00"
}]
for (var i = 0; i < arr.length; i++) {
var time = (arr[i].time.split('US '))[1];
console.log(time);
}
答案 3 :(得分:1)
您可以使用filter
功能过滤数组,并可以使用indexOf
检查time
字段是否包含15:00:00
。
E.g:
var json = [{
"name": "zack",
"message": "hello",
"time": "US 15:00:00"
},
{
"name": "zack",
"message": "hello",
"time": "US 00:00:00"
}
];
var resultObj = json.filter(item=>item.time.indexOf("15:00:00") !== -1);
console.log(resultObj);