我有一些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
你能告诉我我做错了什么吗? 先谢谢
答案 0 :(得分:2)
您可以使用map
:
resultArray[key].diams.map(i => diams[i])
或者,如果你想坚持使用jQuery并避免使用ES5 / 6:
$.map(resultArray[key].diams, function(i) {
return diams[i];
})
答案 1 :(得分:0)
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;