Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSON数组中搜索字符串并检索将其作为值包含的对象_Javascript_Jquery_Json - Fatal编程技术网

Javascript 在JSON数组中搜索字符串并检索将其作为值包含的对象

Javascript 在JSON数组中搜索字符串并检索将其作为值包含的对象,javascript,jquery,json,Javascript,Jquery,Json,我的JSON在下面。它包含两个对象,每个对象都有几个键值对。如何搜索整个JSON数组并将包含特定字符串的对象作为值提取 在这种情况下,我需要拉取优惠券代码为:COUPON1的对象,这样我就可以拉取优惠券的ID 简而言之,我只需要获得优惠券的id,优惠券代码为:COUPON1 [Object, Object] 0: Object coupon_code: "COUPON1" created_at: "2013-06-04T13:50:20Z" deal_program_id: 1

我的JSON在下面。它包含两个对象,每个对象都有几个键值对。如何搜索整个JSON数组并将包含特定字符串的对象作为值提取

在这种情况下,我需要拉取优惠券代码为:COUPON1的对象,这样我就可以拉取优惠券的ID

简而言之,我只需要获得优惠券的id,优惠券代码为:COUPON1

[Object, Object]

  0: Object
  coupon_code: "COUPON1"
  created_at: "2013-06-04T13:50:20Z"
  deal_program_id: 1
  id: 7
  updated_at: "2013-06-04T13:50:20Z"
  __proto__: Object

  1: Object
  coupon_code: "COUPON3"
  created_at: "2013-06-04T15:47:14Z"
  deal_program_id: 1
  id: 8
  updated_at: "2013-06-04T15:47:14Z"

谢谢:)

您只需在阵列中循环并查看。有

例如:

这将循环通过
数组
,并检查
优惠券代码
中的指定值。如果它发现了什么,它将在
result
中返回它


请注意,这是自JavaScript 1.6以来可用的。您可能想看看它。

编写一个通用查找函数:

function find (arr, key, val) { // Find array element which has a key value of val 
  for (var ai, i = arr.length; i--;)
    if ((ai = arr[i]) && ai[key] == val)
      return ai;
  return null;
}
电话如下:

find (arr, 'coupon_code', 'COUPON1')

我认为for循环就可以了:当您搜索它时,它已经不再是JSON了。它只是一个数组。
var result = null;
Objects.forEach(function(obj, i){
    if(obj.cupon_code == 'COUPON1'){
        return result = obj;
    }
});
console.log(result);
function find (arr, key, val) { // Find array element which has a key value of val 
  for (var ai, i = arr.length; i--;)
    if ((ai = arr[i]) && ai[key] == val)
      return ai;
  return null;
}
find (arr, 'coupon_code', 'COUPON1')