json 출력은 다음과 같습니다. {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1}
받은 값 각각을 추가해야합니다. 옆에있는 숫자는 존재하는 횟수입니다.
나는 그것이 "for each"값을 가진 무언가가 될 것이라는 것을 알고 있지만, json 응답의 값과 키는 가변적이기 때문에 그것을 수행하는 방법을 알아내는 것이 어렵습니다.
추가 순서는 숫자가 얼마나 큰지에 따라 달라집니다. 더 크면 상단에 인쇄하고 ...
예를 들면 :
<div id="values">
<p>The value "more" is repeated 5 time(s).</p>
<p>The value "apple" is repeated 3 time(s).</p>
<p>The value "another" is repeated 1 time(s).</p>
...
</div>
생각해 내다! 반응은 변할 수 있습니다. 반응은 항상 사과, 또 다른, 더 많은 것, 볼보, 아우디, 포드 ... 그것은 변할 수 있습니다!
편집 : 나는 이것으로 뭔가를 할 수 있지만, 더 높거나 낮은 값으로 어떻게 주문합니까?
for (var key in interests) {
if (interests.hasOwnProperty(key)) {
console.log(key + " -> " + interests[key]);
}
}
편집하다:
var data = {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1}; // initial data
var interestsValue = []; // data with values
for (var key in data){ interestsValue.push({ name: key, value: data[key] }); } // send data with values
interestsValue.sort(function(a, b){ return b.value - a.value; }); // sort values
console.log(interestsValue); // values ordered from bigger to smaller
위에서 언급했듯이 먼저 객체를 배열로 변환하십시오.
var data = {"apple":3,"another":1,"more":5,"volvo":1,"audi":1,"ford":1};
function sortByValue (data){
var dataArray=[];
for(var key in data){
dataArray.push({name:key ,value :data[key]});
}
dataArray.sort(function(a,b){return b.value- a.value}); //sort it in descreasing order
return dataArray;
}
var text="";
var objArray = sortByValue(data);
$.each(objArray,function(index,object){
text +=" <p>The value " +object.name+ " is repeated "+ object.value + " time(s).</p>";
});
$("#values").append(text)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다