Tengo una serie de piezas en un juego y al principio almaceno su tienda DIV completa con estilo en un objeto con la clave respectiva siendo un número encriptado. Al final del juego, compruebo la pieza en la que se ha hecho clic para ver si su índice z actual coincide con el estilo original almacenado en el objeto. Actualmente estoy usando lodash que funciona perfectamente, pero me gustaría eliminar lodash para no tener que cargar esta biblioteca adicional. Mi problema es que simplemente no puedo traducir las tres líneas de código a Javascript puro (o jQuery para el caso). Soy bastante principiante y ahora he pasado horas tratando de resolver esto. Cualquier consejo sería apreciado. Aquí mi código "lodash":
var myVar = _.findKey(myObject, function (storedDIV) { return storedDIV.css('z-index') == clickedDIV.css('z-index'); });Puede crear una función similar a _.findKey() usando Object.keys y Array.find() . La función acepta un predicado, o puede usar el predicado de identidad predeterminado ( o => o ), pero no es compatible con las otras abreviaturas lodash _.findKey() .
const findKey = (obj, predicate = o => o) => Object.keys(obj) .find(key => predicate(obj[key], key, obj)) // example 1 - passing a predicate const users = {'barney': { 'age': 36, 'active': true },'fred': { 'age': 40, 'active': false },'pebbles': { 'age': 1, 'active': true }} console.log(findKey(users, o => o.age < 40)) // barney // example 2 - using default identity predicate const flags = { a: false, b: true, c: false } console.log(findKey(flags)) // b