awi*_*ley 8 javascript arrays jquery
我想从这里开始:
example = [{
name: "someone1",
city: "somewhere1",
state: "someplace1"
},{
name: "someone2",
city: "somewhere2",
state: "someplace2"
}]
Run Code Online (Sandbox Code Playgroud)
到这里:
example.name = [ "someone1", "someone2" ]
Run Code Online (Sandbox Code Playgroud)
尽可能少的代码.显然我可以循环它并构建数组但我需要在各种对象上执行此操作很多次.我可以编写一个函数来完成它但是很难使我的应用程序的函数足够通用.
在jQuery中有这个快捷方式吗?
您可以迭代对象键并name使用push以下命令保存在数组中:
example = [{
name: "someone1",
city: "somewhere1",
state: "someplace1"
}, {
name: "someone2",
city: "somewhere2",
state: "someplace2"
}];
var arrNames = [];
//iterate through object keys
Object.keys(example).forEach(function(key) {
//get the value of name
var val = example[key]["name"];
//push the name string in the array
arrNames.push(val);
});
console.log(arrNames);//prints ["someone1", "someone2"]Run Code Online (Sandbox Code Playgroud)
在@Felix建议之后(我同意),没有必要使用Object.keys:
example = [{
name: "someone1",
city: "somewhere1",
state: "someplace1"
}, {
name: "someone2",
city: "somewhere2",
state: "someplace2"
}];
var arrNames = [];
//iterate through object keys
example.forEach(function(item) {
//get the value of name
var val = item.name
//push the name string in the array
arrNames.push(val);
});
console.log(arrNames); //prints ["someone1", "someone2"]Run Code Online (Sandbox Code Playgroud)
参考
你可以使用$.mapjQuery中的函数:
var value = $.map(example, function () {
return this.name;
});
Run Code Online (Sandbox Code Playgroud)
这将返回一个项目数组.
我在这里为你做了一个快速测试:http://jsperf.com/jquery-vs-javascriptlvjsklvjsfklsfklsdjfk
它由三个解决方案组成:
一个基本的循环
for (var i = 0; i < example.length; i++) {
array.push(example[i].name);
}
Run Code Online (Sandbox Code Playgroud)
一个jQuery $ .each()
$.each(example, function(i, item) {
array.push(example[i].name);
});
Run Code Online (Sandbox Code Playgroud)
一个答案贴在这个帖子上
Object.keys(example).forEach(function(key) {
//get the value of name
var val = example[key]["name"];
//push the name string in the array
array.push(val);
});
Run Code Online (Sandbox Code Playgroud)
这是结果(更大的栏更好) 
基本上你必须要记住的是,jQuery可能有一个由"less code"组成的快捷方式,但实际上它的性能会比你自己编写代码的性能差.
| 归档时间: |
|
| 查看次数: |
28633 次 |
| 最近记录: |