有类似'在于'js中的运算符,正如我们所拥有的'$在'在猫鼬/猫鼬中
Is there anything like 'lies in' operator in js, as we have '$in' in mongoose/mongo
我想在js 中实现这样的函数
function(arrayOfObjects, arrayOfValues, property) {
/*here i want to return all the objects of 'arrayOfObjects'
which satisfies the following condition
(index is the iterative index of array 'arrayOfObjects')
arrayOfObjects[index][property] is equivalent to any of
the values that lies in arrayOfValues */
};
示例:
arrayOfObjects = [{ a: 1, b: 2 }, { a: 3, b:4 }, { a: 1, b :3 }];
arrayOfValues = [ 2, 3 ];
function(arrayOfObjects, arrayOfValues, 'b')
return [{ a: 1, b: 2 }, { a: 1, b :3 }]
是否
arrayOfObjects.filter(function (elem) {
return elem.hasOwnProperty(property)
&& -1 !== arrayOfValues.indexOf(elem[property]);
});
如果您需要IE8支持:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter#Compatibility
您可以使用Array.prototype.filter
功能:
var a1 = [{ a: 1, b: 2 }, { a: 3, b:4 }, { a: 1, b :3 }];
var a2 = [2, 3];
var filtered = a1.filter(function(item) {
return a2.indexOf(item.b) != -1;
});
不,这是一个太复杂的问题,不能在JS中内置一些运算符或函数。
你必须使用一些循环来遍历元素。
function(arrayOfObjects, arrayOfValues, property) {
var result = [];
for (var i = 0; i < arrayOfObjects; i++) {
for (var j = 0; j < arrayOfValues; j++) {
if (arrayOfObjects[i][property] === arrayOfValues[j]) {
result.push(arrayOfObjects[i]);
continue; //object already added, go to next one
}
}
}
return result;
};
function fun1(arrayOfObjects, arrayOfValues, property) {
var result = new Array();
for (var obj in arrayOfObjects){
if (arrayOfObjects[obj].hasOwnProperty(property) &&
arrayOfObjects[obj][property] == arrayOfValues[property]){
result.push(arrayOfObjects[obj]);
}
}
return result;
}
var arrayOfObjects = [{ a: 1, b: 2 }, { a: 3, b:4 }, { a: 1, b :3 }];
var arrayOfValues = new Array();
arrayOfValues['a'] = 2;
arrayOfValues['b'] = 3;
console.log(fun1(arrayOfObjects , arrayOfValues , 'b'));
您的arrayOfValues应该是一个"关联数组"或键值对对象,该对象使用键来匹配属性。这可能更符合你的逻辑。
相关文章:
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 为什么不'我们在javascript中使用函数参数的数据类型
- 我们如何使用css或JavaScript在i/j上更改句点(点)的颜色
- 我们如何在不更改url的情况下使用锚点点击从一个页面重定向到另一个页面
- 我们怎样才能将内含子J用于一组特定的元素
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 拥有财产 - 不起作用
- 我们可以使用任意的编程语言来动态化HTML页面吗
- 为什么我们在ES2015中需要一个新的for循环结构,而我们已经有了for、forEach
- asp.net MVC,重定向到视图,视图打开新窗口到外部url,它'It’’’’我们被当成一种风景
- 我们如何在dailymotion播放器的新测试版中播放youtube视频
- 我们可以用参数对象集合而不是原始数据来调用JavaScript collection.reduce()方法吗
- 我们可以为Cesium中使用CZML绘制的多边形设置outlineWidth属性吗
- 当我们保存一些附件时,我们如何提高PouchDB的性能
- 我们能在&在块到mocha的特定测试用例(it)之后
- 我们可以在HTML中禁用右键单击锚标记吗
- 如何获取使用我们的脚本或web应用程序的网站名称
- 我们可以加载动态角度对话框吗
- 从技术上讲,是否可以在不拥有页面UI的情况下删除页面UI的某些部分
- 有类似'在于'js中的运算符,正如我们所拥有的'$在'在猫鼬/猫鼬中