我无法访问对象内的数组中的所有元素

时间:2017-08-12 21:30:12

标签: javascript jquery

我有一些abjects“resultArray”

resultArray= Array[object,object,....]

我的对象看起来像

color:"value" ,diams:Array[n]

其中n是diams数组中元素的数量。 假设

resultArray.diams = "0","3","5"

"0","3","5"应该是访问全局数组diams的索引 它看起来像

var diams = [60,65,68,69,70,75,76,80,81,82,85,90];

我正在尝试用户从此对象显示所有选定的信息。这是我的代码

$.each(resultArray,function(key,value){
$("#renderedOBJ").append("<p id='p"+key+"'> color: "
+resultArray[key].color+"; Diameter :<span id='s"+key+"'>"
+resultArray[key].diams+"</span> </P>");

我得到了这个

color: purple; Diameter :0,2,3

但我想要

color: purple; Diameter :60,68,69 

这就是为什么我试图访问像这样的全局数组diams

$.each(resultArray,function(key,value){
$("#renderedOBJ").append("<p id='p"+key+"'> Color: "+resultArray[key].color+
"; Diameter: <span id='s"+key+"'>"
+diams[resultArray[key].diams[key]]+"</span> </P>");
  })

但我只得到第一个值

Color: pink; Diameter :60

你能告诉我我做错了什么吗? 先谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用map

resultArray[key].diams.map(i => diams[i])

或者,如果你想坚持使用jQuery并避免使用ES5 / 6:

$.map(resultArray[key].diams, function(i) {
    return diams[i];
})

答案 1 :(得分:0)

&#13;
&#13;
var diams = [60,65,68,69,70,75,76,80,81,82,85,90];
resultArray= [{color:"purple",diams:["0","2","3"]},
{color:"yellow",diams:["0","3","5"]}
];
$.each(resultArray,function(key,value){
	$("#renderedOBJ").append("<p id='p"+key+"'> Color: "+resultArray[key].color+
"; Diameter: <span id='s"+key+"'>"
+resultArray[key].diams.map(function(a) {return diams[parseInt(a)]}).join(', ')+"</span> </P>");
  })
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="renderedOBJ"></div>
&#13;
&#13;
&#13;

相关问题