我的代码是这样的:
var arr = [];
arr.push(item1,item2);
Run Code Online (Sandbox Code Playgroud)
所以arr将包含像:["name","thing1"]
但是在推送具有相同精确值的元素时出现问题,如何过滤相同的元素值但仍接受更新/更改.的jsfiddle
我正在运行一个express.js应用程序,它有一些api向下拉框提供数据.返回的数据采用以下形式:
[
{
key: 'blah',
value: 'Blah Blah'
},
{
key: 'foo',
value: 'Foos'
},
{
key: 'bar',
value: 'Bars'
},
{
key: 'baz',
value: 'Bazingo'
}
];
Run Code Online (Sandbox Code Playgroud)
其中key是我的选项键,value是显示文本.这个数组的结构是固定的,我知道一个事实,我将始终拥有键和值作为数组中每个对象的字段.
当我尝试验证提交的表单(额外的服务器端验证)时,我想交叉引用为字段提供的值与数组中的"key"的所有值(blah,foo,bar,baz).鉴于这将是一个经常使用的路由,我想避免迭代遍历数组,以便每次都找到允许的值.有更简单的方法吗?换句话说,我知道我可以使用:
permittedValues = [];
for (i = 0; i < array.length; i++){
permittedValues[i] = array[i]["key"];
}
Run Code Online (Sandbox Code Playgroud)
但如果可能的话,我想避免这种情况.
PS:这似乎是一个基本问题,我在网上找到的答案并没有完全回答我的问题.所以,如果已经被要求和回答,请道歉.
我试图通过其中一个键的值获取数组中的对象.
数组:
var arr = [
{
city: 'Amsterdam',
title: 'This is Amsterdam!'
},
{
city: 'Berlin',
title: 'This is Berlin!'
},
{
city: 'Budapest',
title: 'This is Budapest!'
}
];
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情,lodash但没有成功.
var picked = lodash.pickBy(arr, lodash.isEqual('Amsterdam');
Run Code Online (Sandbox Code Playgroud)
它返回一个空对象.
关于如何以lodash的方式做到这一点的任何想法(如果它甚至可能)?我可以用经典的方式做到这一点,创建一个新的数组,循环遍历所有对象,并将符合我标准的对象推送到新数组.但有没有办法用lodash做到这一点?
这不是重复的.
我正在看一些我正在写的jQuery代码,它对我的C#大脑看起来很奇怪.有没有更好的方法呢?
var idToLookFor = 2;
var myArray = [{id:1},{id:2},{id:3}]
var arrayItem = $.grep(myArray , function (elm) {
return elm.id == idToLookFor;
});
var itemFound = arrayItem[0];
Run Code Online (Sandbox Code Playgroud)
我可以理解grep返回一个数组,而不是它是一个查找类型函数,它是一个过滤器类型函数,所以我猜问题应该是一个只返回一个项而不是一个数组的函数?
我有一个对象数组,如下所示:
var events = [
{ date: "18-02-2016", name: "event A" },
{ date: "22-02-2016", name: "event B" },
{ date: "19-02-2016", name: "event C" },
{ date: "22-02-2016", name: "event D" }
];
Run Code Online (Sandbox Code Playgroud)
我有一个约会,例如"22-02-2016".如何获得一个数组,其中所有对象的日期与给定日期相同?所以在这个例子中我会得到事件B和D.
问题是:Chrome会自动对对象的属性进行排序.
如果我有一个像这样的对象:
var obj = {4: "first", 2: "second", 1: "third"};
Run Code Online (Sandbox Code Playgroud)
然后我下次做的时候:
for(var i in obj) {
console.debug(obj[i]);
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
third
second
first
但期望:
first
second
third
我想知道是否有人知道使用JQuery find方法或inArray方法查找数组中的项目的方法.我似乎无法在文档中找到任何内容.
例如:
var items = [{id:1, name:'bob'}, {id:2, name:'joe'}, {id:3, name:'ben'}];
var found = $(items).find("[name='ben']");
Run Code Online (Sandbox Code Playgroud)
要么
var items = [{id:1, name:'bob'}, {id:2, name:'joe'}, {id:3, name:'ben'}];
var found = $.inArray("[name='ben']", items);
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种检查对象数组中是否存在对象的好方法.当所有键/值存在于该数组中的同一对象中时,预期结果为true.
通过使用jQuery.grep或在Javascript中的对象数组中查找值返回找到的对象,在JavaScript对象数组中通过id浏览stackoverflow(如find对象)找到的答案.我正在寻找的是一个布尔结果(不是找到的对象).
我知道我可以循环所有数组元素,然后比较每个值....等
但我的意思是,如果有一种方法可以使用这样的JS方法:
var listOfObjecs = [
{id: 1, name: "Name 1", score: 11},
{id: 2, name: "Name 2", score: 22},
{id: 3, name: "Name 3", score: 33},
{id: 4, name: "Name 4", score: 44},
{id: 5, name: "Name 5", score: 55},
];
var isObjectExist = function(search){
return listOfObjecs.filter(function(obj){
if(obj.id===search.id && obj.name===search.name && obj.score===search.score){
return true;
}
return false;
});
}
console.log( isObjectExist({id: 3, name: "Name …Run Code Online (Sandbox Code Playgroud)我有一个JSON字符串,并被绑定到一个javascript对象
{
"results":[
{
"id":"460",
"name":"Widget 1",
"loc":"Shed"
},{
"id":"461",
"name":"Widget 2",
"loc":"Kitchen"
}]
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在javascript中"查询"这个数据,所以我可以搜索ID为460并返回名称和loc(除了循环整个对象)?我有jQuery和Prototypejs可供使用.
我有一个保存这些数据的变量:
{"main":[
{"id":"123","name":"name 1"},
{"id":"234","name":"name 2"}
]
}
Run Code Online (Sandbox Code Playgroud)
我知道要搜索的数据的ID.
我的问题是......我如何搜索id 234的名称(例如)是上面的数据?