Javascript Object Literal值作为数组表示

时间:2017-04-11 06:07:52

标签: javascript arrays object



function __sort_number(list) {
  var anum = list.sort(function  __asort(a, b) {
		return a > b ? 1 : a < b ? -1 : 0;
	});

	anum.reverse();

	return anum;
}

// list = [1,5,3,6,2]

function evaluate_rank(list) {

	var sorted_list = __sort_number(list);

	// expected output : [6,5,3,2,1]

	var my_return = {
		'original' : list,
		'sorted' : sorted_list
	};

	// expected output : { original : [1,5,3,6,2], sorted : [6,5,3,2,1] }

	console.log(my_return);

	// when i view the object on the console dev tools
	// the arrays are sorted in ascending order
	// but when i tried using a for loop to check the values
	// being iterated is correct on sorted


	for (var i = 0; i < my_return.sorted.length; i++) {
			console.log(my_return.sorted[i]);
	}

	// expected output : 6 5 3 2 1
	// actual output : 6 5 3 2 1
}

evaluate_rank([1,5,3,6,2]);
&#13;
&#13;
&#13;

是否应该在创建对象时进行任何设置 这样,如果我想查看保存在对象上的真实值 与我期望的价值相同,因此不会产生混淆

1 个答案:

答案 0 :(得分:0)

sort方法后的返回值是可选的,sort方法将对调用它的数组进行排序。

您可以在对数组应用排序之前复制该数组。

成功

    var anum = JSON.parse( JSON.stringify( list ) ).sort(function  __asort(a, b) {
        return a > b ? 1 : a < b ? -1 : 0;
    });

或您的用例和更好的表现

    var anum = list.slice(0).sort(function  __asort(a, b) {
        return a > b ? 1 : a < b ? -1 : 0;
    });