Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 jquery-从对象获取数组_Javascript_Jquery - Fatal编程技术网

Javascript jquery-从对象获取数组

Javascript jquery-从对象获取数组,javascript,jquery,Javascript,Jquery,变量的输出如下所示- console.log(arrayForPrice); 93: {id: "93", code: "color", label: "Color", options: Array(3), position: "1"} 141: {id: "141", code: "size", label: "Size", options: Array(3), position: "0"} 关于Json字符串化- { "93":{"id":"93","code":"color","lab

变量的输出如下所示-

console.log(arrayForPrice);

93: {id: "93", code: "color", label: "Color", options: Array(3), position: "1"}
141: {id: "141", code: "size", label: "Size", options: Array(3), position: "0"}
关于Json字符串化-

{
"93":{"id":"93","code":"color","label":"Color","options":[{"id":"50","label":"Blue","products":["1216","1219","1222"]},{"id":"58","label":"Red","products":["1217","1220","1223"]},{"id":"60","label":"Yellow","products":["1218","1221","1224"]}],"position":"1"},
"141":{"id":"141","code":"size","label":"Size","options":[{"id":"168","label":"S","products":["1216","1217","1218"]},{"id":"169","label":"M","products":["1219","1220","1221"]},{"id":"170","label":"L","products":["1222","1223","1224"]}],"position":"0"}
}
我需要将另一个变量的输出与上面共享的两个对象的键相匹配。但我面临的问题是我无法破解并进入钥匙。我想要键
选项中的数组

我尝试的守则如下:

$.each(arrayForPrice,function(i) {

    $.each(data.programs[i], function (key, val) {
        console.log(key);
    });
});

但它不起作用。如何访问选项数组?

在javascript中,您可以访问如下元素

 for(var key in arrayForPrice){
  var obj = arrayForPrice[key];
  var optionArray = obj.options;
  optionArray.forEach(function(data){
   // Access the elements are 
  }); 
 }
for(变量i=0;i
以上是访问所有密钥的方法

要访问选项阵列,我会选择以下选项:

for(var i = 0; i < arrayForPrice.length; i++){
     var priceItem = arrayForPrice[i];
     if(typeof priceItem['options'] != 'undefined'){
         var optionsArray = priceItem['options'];
     }
}
for(变量i=0;i
也许你能得到帮助

var数据={
“93”:{“id”:“93”,“代码”:“颜色”,“标签”:“颜色”,“选项”:[{“id”:“50”,“标签”:“蓝色”,“产品”:[“1216”,“1219”,“1222”]},{“id”:“58”,“标签”:“红色”,“产品”:[“1217”,“1220”,“1223”]},{“id”:“60”,“标签”:“黄色”,“产品”:[“1218”,“1221”,“1224”]}],“位置”:“1”},
“141”:{“id”:“141”,“代码”:“大小”,“标签”:“大小”,“选项”:[{“id”:“168”,“标签”:“S”,“产品”:[“1216”,“1217”,“1218”]},{“id”:“169”,“标签”:“M”,“产品”:[“1219”,“1220”,“1221”]},{“id”:“170”,“标签”:“L”,“产品”:[“1222”,“1223”,“1224”]},,“位置”:“0”}
}
$.each(数据、函数(索引、val){
console.log(val.options);//这里您可以进入选项内部
});
var数组格式={
“93”:{“id”:“93”,“代码”:“颜色”,“标签”:“颜色”,“选项”:[{“id”:“50”,“标签”:“蓝色”,“产品”:[“1216”,“1219”,“1222”]},{“id”:“58”,“标签”:“红色”,“产品”:[“1217”,“1220”,“1223”]},{“id”:“60”,“标签”:“黄色”,“产品”:[“1218”,“1221”,“1224”]}],“位置”:“1”},
“141”:{“id”:“141”,“代码”:“大小”,“标签”:“大小”,“选项”:[{“id”:“168”,“标签”:“S”,“产品”:[“1216”,“1217”,“1218”]},{“id”:“169”,“标签”:“M”,“产品”:[“1219”,“1220”,“1221”]},{“id”:“170”,“标签”:“L”,“产品”:[“1222”,“1223”,“1224”]},,“位置”:“0”}
};
for(阵列形式中的变量i){
log(arrayForPrice[i].options);

}
请显示
arrayForPrice
的实际
console.log
输出,或者更好的是,显示
console.log(JSON.stringify(arrayForPrice))的确切输出。
。不清楚它是什么(看起来它可能是一个不是数组的对象,但不可能确定)。也就是说,即使它是一个非对象数组,从您引用的
i
将是
“93”
,然后是
“141”
,在
每次调用中。我已经用jsonstringify console.logI更新了我的答案。我不明白您想要什么。你想找到一个键的值,以及它是否存在于任何对象中?我基本上想获取键内的options数组的值。但在此之前,我想应用一个检查,如果密钥是141,那么它应该发生。基本上,它可以是141或其他什么,稍后我将应用if条件,但我当前的问题是获取选项数组。正如我所说的,
$中的
I
。每个
回调都将是ID。听起来您在从
data.programs
访问数据时遇到了问题,您没有显示这些数据。请用演示问题的代码更新您的问题,最好是使用堆栈代码段(
[]
工具栏按钮;)的可运行问题。未捕获引用错误:未定义键更新代码。它们的问题在for循环的右括号中,您能不能请和更新,以便我可以批准。更新后,您可以立即运行代码!
$。OP已使用的每个
都已执行此操作。
$。OP已使用的每个
都已执行此操作。
for(var i = 0; i < arrayForPrice.length; i++){
     var priceItem = arrayForPrice[i];
     if(typeof priceItem['options'] != 'undefined'){
         var optionsArray = priceItem['options'];
     }
}